Blame src/ftpget

Packit 8f70b4
#!/bin/bash
Packit 8f70b4
Packit 8f70b4
# ftpget - script replacement for old utility
Packit 8f70b4
# Copyright (c) 2000 Alexander V. Lukyanov <lav@yars.free.net>
Packit 8f70b4
# This file is covered by GNU GPL. See file COPYING for details.
Packit 8f70b4
Packit 8f70b4
usage()
Packit 8f70b4
{
Packit 8f70b4
   echo "Usage: $0 [OPTS] host filename [-o local] [filename...]"
Packit 8f70b4
   echo " -p <port>         set port number"
Packit 8f70b4
   echo " -u <user[,pass]>  login as user using pass as password"
Packit 8f70b4
   echo " -l                get listing of specified directory(ies)"
Packit 8f70b4
   echo " -c                reget specified file(s)"
Packit 8f70b4
   echo " -q                quiet (no output)"
Packit 8f70b4
   echo " -v                verbose (lots of output)"
Packit 8f70b4
   echo " -o <file>         output to this file (default - base name of filename)"
Packit 8f70b4
   exit 1
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
port=""
Packit 8f70b4
user=""
Packit 8f70b4
list=false
Packit 8f70b4
cont=""
Packit 8f70b4
verb=""
Packit 8f70b4
final="set verbose yes; "
Packit 8f70b4
Packit 8f70b4
while getopts +p:u:lcv opt
Packit 8f70b4
do
Packit 8f70b4
   case $opt in
Packit 8f70b4
   \?)	 usage;;
Packit 8f70b4
   p)	 port=":$OPTARG";;
Packit 8f70b4
   u)	 user="-u $OPTARG ";;
Packit 8f70b4
   l)	 list=true;;
Packit 8f70b4
   c)	 cont=" -c";;
Packit 8f70b4
   v)	 verb="debug 5; ";;
Packit 8f70b4
   q)	 final="";;
Packit 8f70b4
   esac
Packit 8f70b4
done
Packit 8f70b4
while [ $OPTIND -gt 1 ]
Packit 8f70b4
do
Packit 8f70b4
   OPTIND=$(($OPTIND-1))
Packit 8f70b4
   shift
Packit 8f70b4
done
Packit 8f70b4
host="$1"
Packit 8f70b4
shift
Packit 8f70b4
Packit 8f70b4
if [ -z "$host" ]; then
Packit 8f70b4
   usage
Packit 8f70b4
fi
Packit 8f70b4
Packit 8f70b4
cmd="get$cont"
Packit 8f70b4
ok=false
Packit 8f70b4
$list && { cmd="ls"; ok=true; }
Packit 8f70b4
Packit 8f70b4
for f
Packit 8f70b4
do
Packit 8f70b4
   case "$f" in
Packit 8f70b4
   "*[\"'\\]*")
Packit 8f70b4
      # need to quote
Packit 8f70b4
      f="`echo "$f" | sed 's/\([\\\"'\'']\)/\\\1/g'`"
Packit 8f70b4
      ;;
Packit 8f70b4
   esac
Packit 8f70b4
   cmd="$cmd \"$f\""
Packit 8f70b4
   ok=true;
Packit 8f70b4
done
Packit 8f70b4
Packit 8f70b4
$ok || { usage; }
Packit 8f70b4
Packit 8f70b4
exec lftp -c "$final${verb}open $user$host$port; $cmd"