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