:
##########################################################################
# Title      :	transfer.ftp - transfer a file using FTP
# Author     :	Heiner Steven <heiner.steven@odn.de>
# Date       :	1994-02-03
# Requires   :	ftp
# Category   :	System Administration
# SCCS-Id.   :	@(#) transfer.ftp	1.2 03/12/19
##########################################################################
# Description
#    -	transfers the file to the given host using FTP (binary
#	mode)
#    -	To automate the transfer, a temporary file "$HOME/.netrc"
#	will be created (if not already present)
##########################################################################

PN=`basename "$0"`			# Program name
VER='1.2'

Netrc=$HOME/.netrc

if [ \( $# -lt 1 \) -o \( ! -r "$1" \) ]
then
    echo >&2 "usage: $PN file [hostname]"
    exit 1
fi

File="$1"
Host="${2:-`uname -n`}"
Base=`basename "$File"`

# If $HOME/.netrc is readable and contains the target host name,
# try an automatic FTP transfer. Otherwise, create the file
# temporarily, and remove it later on.

[ -r $Netrc ] && grep "$Host" $Netrc > /dev/null || {
    User=`id | sed 's/uid=[0-9][0-9]*(\([^)]*\)).*/\1/'`
    echo -n "$PN: password ($User@$Host): "
    stty -echo
    read PW || { stty echo; exit 1; }
    stty echo
    echo " OK"

    if [ -r "$Netrc" ]
    then				# Create backup of old .netrc
    	mv "$Netrc" "$Netrc".$$
	trap 'mv "$Netrc".$$ "$Netrc"' 0
    else
        > "$Netrc"
	trap 'rm -f "$Netrc"' 0
    fi
    trap "exit 2" 1 2 3 15
    echo "machine $Host login $User password $PW" >> "$Netrc" || exit 1
    chmod 600 "$Netrc"
    ls -l "$Netrc"
}

ftp $Host <<!
bin
put $File $Base
quit
!
