aboutsummaryrefslogtreecommitdiff
path: root/util/pkgget
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 /util/pkgget
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'util/pkgget')
-rwxr-xr-xutil/pkgget177
1 files changed, 177 insertions, 0 deletions
diff --git a/util/pkgget b/util/pkgget
new file mode 100755
index 00000000..fba02c04
--- /dev/null
+++ b/util/pkgget
@@ -0,0 +1,177 @@
+#!/bin/bash
+#
+# PKGGET -- Download the specified URL to the current directory. We use
+# a command specific to the system we're on. We assume the URL has been
+# properly escaped in the argument list.
+#
+# Usage: pkgget [-h] [-n] [-v] url
+#
+# Where -n no-op flag
+# -v verbose output
+# -h this message
+#
+# Example:
+# % pkgget -q ftp://iraf.noao.edu/iraf/extern/foo-linux.tar.gz
+#
+# ----------------------------------------------------------------------------
+
+
+export PATH=../util:$PATH
+
+# Initialize the $iraf and environment.
+if [ -z "$iraf" ]; then
+ if [ -e "$HOME/.iraf/setup.sh" ]; then
+ source $HOME/.iraf/setup.sh
+ else
+ source ../unix/hlib/setup.sh
+ fi
+else
+ source $iraf/unix/hlib/setup.sh
+fi
+
+
+# Utility aliases.
+source ${iraf}/unix/hlib/util.sh
+
+
+
+##############################################################################
+# START OF MACHDEP DEFINITIONS.
+##############################################################################
+
+# MACHDEP definitions which may be reset below.
+VERSION=`cat ../.version`
+
+
+#----------------------------------
+# Determine platform architecture.
+#----------------------------------
+
+UNAME=""
+if [ -e /usr/bin/uname ]; then
+ uname_cmd=/usr/bin/uname
+ UNAME=`/usr/bin/uname | tr '[A-Z]' '[a-z]'`
+elif [ -e /bin/uname ]; then
+ uname_cmd=/bin/uname
+ UNAME=`/bin/uname | tr '[A-Z]' '[a-z]'`
+else
+ WARNING "No 'uname' command found to determine architecture."
+ exit 1
+fi
+
+case $UNAME in
+ "linux" | "linux64")
+ dlcmd="/usr/bin/wget"
+ ;;
+ "darwin" | "macosx" | "macintel" | "ipad") # Mac OSX/iOS
+ #dlcmd="/usr/bin/ftp -A"
+ dlcmd="/usr/bin/ftp"
+ ;;
+
+ # Other architectures to be added here
+
+ *)
+ ERRMSG "Unable to determine platform architecture."
+ exit 1
+ ;;
+esac
+
+# If we don't have a download command installed, use our own .....
+if [ ! -e $dlcmd ]; then
+ dlcmd=`dirname $0`/fget
+fi
+
+##############################################################################
+# END OF MACHDEP DEFINITIONS.
+##############################################################################
+
+#=============================================================================
+# Declarations and initializations.
+#=============================================================================
+
+exec=yes
+verb=no
+url=""
+
+
+# Process cmdline flags.
+while [ -n "$1" ]; do
+ case "$1" in
+ "-n") # no execute
+ exec=no
+ ;;
+ "-v") # be chatty
+ verb=yes
+ quiet=no
+ ;;
+ "-h") # print help summary
+ /bin/echo "Usage: pkgget [-h] [-n] [-q | -v] url"
+ /bin/echo ""
+ /bin/echo " where -n # no execute"
+ /bin/echo " -q # suppress output"
+ /bin/echo " -v # verbose output"
+ /bin/echo " -h # this message"
+ exit 0
+ ;;
+
+ *)
+ url=$1
+ break
+ esac
+
+ if [ -n "$2" ]; then
+ shift
+ else
+ break
+ fi
+done
+
+
+# Error checks.
+if [ -z "$url" ]; then
+ if [ "$verb" == "yes" ]; then
+ /bin/echo "ERROR: URL not specified"
+ fi
+ exit 1
+fi
+
+
+# Do it.
+if [ "$exec" == "yes" ]; then
+ if [ "$verb" == "yes" ]; then
+ /bin/echo "Downloading "$url" ...."
+ fi
+
+ if [ "$verb" == "no" ]; then
+ $dlcmd ${url} >> /dev/null 2>&1
+ else
+ $dlcmd $url
+ fi
+
+ if [ "$verb" == "yes" ]; then
+ /bin/echo "done"
+ fi
+fi
+
+
+# Verify we have the file.
+if [ ! -e ${url##*/} ]; then
+ if [ "$verb" == "yes" ]; then
+ /bin/echo "Error downloading file '"${url##*/}"'"
+ fi
+ exit 1
+
+else
+ if (( $#>1 )); then
+ mv ${url##*/} $2
+ fi
+fi
+
+# Normal exit.
+exit 0
+
+
+
+#=============================================================================
+# Usage
+#=============================================================================