:
##########################################################################
# Title      :	transfer.cp - Datei zum Host uebertragen
# Author     :	Heiner Steven <heiner.steven@odn.de>
# Date       :	1994-02-03
# Requires   :	
# Category   :	System Administration
# SCCS-Id.   :	@(#) transfer.cp	1.3 03/12/19
##########################################################################
# Beschreibung:
#     - Uebertraegt mit ftp die angegebene Datei im Binaermodus
#	zum angegebenen Host
#     -	Damit der Transfer automatisch ablaeuft, wird (falls nicht
#	schon vorhanden) kurzfristig die Datei ~/.netrc angelegt.
##########################################################################
# Aenderungen:
#
# Nr    Datum     KZ	Beschreibung
# ========================================================================
# 0000	25.01.94  stv	Neuerstellung
##########################################################################

PN=`basename "$0"`			# Program name
VER=`echo '$Revision: 1.4 $' | cut -d' ' -f2`

Netrc=$HOME/.netrc

if [ \( $# -lt 1 \) -o \( ! -r "$1" \) ]
then
    echo "Aufruf: $PN Datei [Hostname]"
    exit 1
fi

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

# wenn ~/.netrc lesbar ist, und den Hostnamen enthaelt, dann
# automatischen Dateitransfer versuchen.
# Andernfalls kurzfristig anlegen (spaeter wieder loeschen)

[ -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"

    echo "machine $Host login $User password $PW" > $Netrc &&
	chmod 600 $Netrc 
    [ $? -eq 0 ] || {
	echo "$PN: Datei $Netrc kann nicht angelegt werden!" >&2
	exit 1
    }

    # Datei auf jeden Fall loeschen
    trap "rm -f $Netrc" 0
    trap "exit 1" 1 2 3 15
}

ftp $Host <<!
bin
put $Datei $Base
quit
!
if [ $? -eq 0 ]
then
    cp $Datei ${DISKSPOOL:=$HOME/disk}
    mv $Datei $HOME/tmp
else
    echo "$PN: transfer nicht erfolgreich!" >&2
    exit 1
fi
