diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /unix/hlib/util.csh/fget | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'unix/hlib/util.csh/fget')
-rwxr-xr-x | unix/hlib/util.csh/fget | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/unix/hlib/util.csh/fget b/unix/hlib/util.csh/fget new file mode 100755 index 00000000..23af7c6a --- /dev/null +++ b/unix/hlib/util.csh/fget @@ -0,0 +1,185 @@ +#!/bin/csh -f +# +# FGET -- Download a URL. +# +# Usage: fget [-h] [-n] [-q | -v] url +# +# Where -n no-op flag +# -q suppress output +# -v verbose output +# -d set download directory +# -o set output filename +# -h this message +# +# Example: +# % fget -q ftp://iraf.noao.edu/iraf/extern/foo-linux.tar.gz +# +# ---------------------------------------------------------------------------- + + +unset noclobber +onintr cleanup_ +unalias cd cp cmp echo ln mv rm sed set grep ls chmod chown pwd touch sort which +unalias ftp wget + +setenv path "(../util /sbin /usr/sbin /bin /usr/bin /usr/5bin /usr/ucb /etc /usr/etc $path /usr/local/bin /opt/local/bin /local/bin /home/local/bin)" + +# set echo + + +############################################################################## +# START OF MACHDEP DEFINITIONS. +############################################################################## + +# MACHDEP definitions which may be reset below. + + +# Find the iraf root directory. +if (! $?iraf) then + set iraf = "" + foreach f ( ~/.iraf.h ~/.iraf/iraf.h /usr/include/iraf.h) + # $iraf is defined, use a well-known path for the system + if (-e ${f}) then + set i = `egrep IRAF ${f} | egrep \#define | sed -e 's/"//g'` + set iraf = $i[3] +echo $i + break + endif + end +endif +if ("$iraf" == "") then + if (-e /iraf/iraf) then + set iraf = /iraf/iraf/ + else + set iraf = `dirname $0`/../ + endif +endif + +# Determine platform architecture. +set arch = `$iraf/unix/hlib/irafarch.csh` + + +############################################################################## +# END OF MACHDEP DEFINITIONS. +############################################################################## + +#============================================================================= +# Declarations and initializations. +#============================================================================= + +set exec = yes +set verb = no +set url = "" +set fname = "" +set ddir = "" + + +# Process cmdline flags. +while ("$1" != "") + switch ("$1") + case -n: # no execute + set exec = no + breaksw + case -q: # be quiet + set verb = no + set quiet = yes + breaksw + case -v: # be chatty + set verb = yes + set quiet = no + breaksw + case -h: # print help summary + goto Usage + case -d: # set download directory + set ddir = $2 + shift + breaksw + case -o: # set output file name + set fname = $2 + shift + breaksw + default: + set url = $1 + break + endsw + + if ("$2" == "") then + break + else + shift + endif +end + + +# Error checks. +if ("$url" == "") then + if ("$verb" == "yes") then + echo "ERROR: URL not specified" + endif + exit 1 +endif + +# Get the download filename. Delete an existing copy of the file +if ($fname == "") then + set fname = $url:t +endif +if (-e "$fname") then + /bin/rm -f $fname +endif + +# Ensure URL is an HTTP protocol. +set prot = `echo $url | cut -c1-3` +if ("$prot" == "ftp") then + set u = `echo $url | sed -e 's;ftp://iraf.noao.edu/iraf;http://iraf.noao.edu/ftp;'` + set url = $u +endif + +# Do it. +if ("$exec" == "yes") then + if ("$verb" == "yes") then + echo "Downloading "$url" ...." + endif + + set args = "url='$url' fname='${ddir}${fname}' cache='/tmp' verbose=no extn='' use_cache=no" + if ("$verb" == "no") then + $iraf/bin.$arch/x_system.e urlget ${args} \$nargs=2 >& /dev/null + else + $iraf/bin.$arch/x_system.e urlget ${args} \$nargs=2 + endif + + if ("$verb" == "yes") then + echo "done" + endif +endif + + +# Verify we have the file. +if (! -e $url:t) then + if ("$verb" == "yes") then + echo "Error downloading file '"$fname"'" + endif + exit 1 +else + if ($#argv > 1) then + mv $url:t $2 + endif +endif + +# Normal exit. +exit 0 + + + +#============================================================================= +# Usage +#============================================================================= + +Usage: + echo "Usage: fget [-h] [-n] [-q | -v] url" + echo "" + echo " where -n # no execute" + echo " -q # suppress output" + echo " -v # verbose output" + echo " -h # this message" + +exit 0 |