Dear Grassers:
I would like to get all the updates to grass4.0, however it appears that
these are in many directories, and they are quite clumsy to retrieve via ftp
and/or ftpmail. Could someone on the moon cpio into a .Z file ?
Many thanks
cheers
duc@comsearch.com
Duc Nygen (duc@comsearch.com) writes on 8 Dec 92:
Dear Grassers:
I would like to get all the updates to grass4.0, however it appears that
these are in many directories, and they are quite clumsy to retrieve via ftp
and/or ftpmail. Could someone on the moon cpio into a .Z file ?
Many thanks
cheers
duc@comsearch.com
save as getrftp, chmod +x
#!/bin/sh
#
# Script to get directories of files (recursively) from a Unix
# ftp server.
#
# Usage: getrftp <host> <dir1> [<dir2> ...]
#
# File: getrftp
# Author: Julian Perry (jp@hplb.hpl.hp.com)
# Date: 90/07/12
# Revision: 1.0
#
USER=anonymous
PASSWORD=`whoami`@`hostname`
VERBOSE=-v
if [ $# -lt 2 ]
then
echo "usage: $0 <host> <dir1> [<dir2> ...]"
exit 1
fi
HOST=$1
ROOT=`pwd`
TMPFIL="/tmp/grftp.$$"
trap "rm -f $TMPFIL; trap '' 0; exit" 0 1 2 13 15
shift
for DIR in $*
do
ftp -v -g -i -n $HOST <<EOF
user $USER $PASSWORD
ls "-pR $DIR" $TMPFIL
quit
EOF
{
echo "user $USER $PASSWORD"
echo "binary"
CURDIR=$DIR
mkdir -p $ROOT/$CURDIR
cd $ROOT/$CURDIR
echo "lcd $ROOT/$CURDIR"
echo "cd /"
echo "cd $CURDIR"
while read line
do
if [ ! -z "$line" ]
then
case "$line" in
* # Found a directory
CURDIR=`echo "$line" | sed -e 's/:$//'`
mkdir -p $ROOT/$CURDIR
cd $ROOT/$CURDIR
echo "lcd $ROOT/$CURDIR"
echo "cd /"
echo "cd $CURDIR"
;;
*/) # Found a directory to be ignored
;;
*) # Found a file
if [ ! -f "$line" ]
then
echo "get $line"
fi
esac
fi
done } < $TMPFIL | ftp $VERBOSE -g -i -n $HOST
done
--