:
# localftp
#
# Shell script pro ovladani vestaveneho ftp serveru programu ArcTel
# verze 4.10 / 3.60 / 2.61, rev 990511
#
# (C) FBL Group, 1994 - 1999
# Firma FBL Vam dava plne opravneni tento program menit, volne sirit
# nebo pouzit jako soucast jineho programu za techto predpokladu:
#   - zustane zachovano oznaceni autorskych prav (copyright)
#   - zustane zachovan tento text
#   - tento ci odvozeny program nebude komercne siren
#     (t.j. prodavan za ucelem dosazeni zisku)

# Pouziti:
#
#	localftp script			provede prikazy ftp klienta dle souboru
#	localftp 			provede prikazy ftp ze std vstupu
#
#	localftp dir adresar		vypise adresar na lokalnim PC
#	localftp ls adresar		vypise adresar na lokalnim PC
#	localftp nlist adresar		vypise adresar na lokalnim PC
#
#	localftp get jmeno		prijme soubor z lokalniho PC
#	localftp mget jmeno jmeno...	prijme soubory z lokalniho PC
#	localftp put jmeno		posle soubor na lokalni PC
#	localftp mput jmeno jmeno...	posle soubory na lokalni PC
#

# Definice prikazu echo
 
# priklad 1.
# echo potrebuje \c na konci pro potlaceni noveho radku
echo="echo"
nnl="\c"
 
# priklad 2. (linux)
# echo potlaci novy radek po parametru -n, interpretuje \ znaky po -e
#echo="echo -en"
#nnl=""
 
# priklad 3. (SCO)
# echo potlaci novy radek po parametru -n, interpretuje \ znaky po -e
#echo="echo -n"
#nnl=""
 

# Volani ftp clienta - zmente dle potreby
#
# -n...nepta se interaktivne na jmeno uzivatele
# -i...nepta se interaktivne pri mget/mput
# -v...verbose, pise, co dela - jinak nelze zjistit selhani prenosu!!!

ftp="ftp -n -i -v"
dirftp="ftp -n"

# Script pro ftp server by mel vypadat asi takto:
#
#	user xxxx		# ma vyznam jen pro identifikaci,
#				# ArcTel nekontroluje jmena a hesla
#	bin			# nezapomente pro binarni prenos
#	cd a:/adresar		# pro praci s disketou
#	get soubor
#	mget soubor soubor ...
#	put soubor
#	mput soubor soubor ...

$echo "Komunikace s lokalnim pocitacem ${nnl}" >&2

esc="\033" 

# Odstartovani FTP serveru v lokalnim rezimu
# pouze pro ArcTel s konfigurovatelnym user execem (verze 3.60 a vyssi)
$echo "${esc}]local-ftp${esc}\\${nnl}" >/dev/tty	

# Zjisteni adresy FTP serveru v lokalnim rezimu
	# vrati internetovou adresu lokalniho PC ve tvaru n.n.n.n<NL>
$echo "${esc}]get-ip-addr${esc}\\${nnl}" >/dev/tty	

read addr </dev/tty		# precte adresu

if [ -z "$addr" ]; then
  echo "ftp server neodpovida." >&2
  exit 2
fi

cmd="$1"

case "$cmd" in

  "")	$ftp $addr;;	 		# ftp rizen standardnim vstupem

  dir | ls | nlist)
        shift
  	$dirftp $addr << END
		user ${LOGNAME:-nobody}
		$cmd $*
END
	;;
  get | put | mget | mput)
        shift
  	$ftp $addr << END
		user ${LOGNAME:-nobody}
                bin
		$cmd $*
END
	;;

  *)	$ftp $addr < "$cmd";;	 	# ftp rizen scriptem

esac
