aboutsummaryrefslogtreecommitdiff
path: root/unix/hlib/util.csh/fget
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /unix/hlib/util.csh/fget
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'unix/hlib/util.csh/fget')
-rwxr-xr-xunix/hlib/util.csh/fget185
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