#!/bin/sh

usage() {
  cat <<__EOF__
usage: $(basename $0) [-hl] [-u user] [-X args] [-d args]
-h        print this help text
-l        print list of files to download
-u user   download as authenticated user
-X args   extra arguments to pass to xargs
-d args   extra arguments to pass to the download program

__EOF__
}

username=
xargsopts=
prompt=
list=
while getopts hlu:xX:d: option; do
  case $option in
  h)
    usage
    exit
    ;;
  l) list=yes ;;
  u)
    prompt=yes
    username="$OPTARG"
    ;;
  X) xargsopts="$OPTARG" ;;
  d) download_opts="$OPTARG" ;;
  ?)
    usage
    exit 2
    ;;
  esac
done

cat <<__EOF__
      Please note that running this script will result in the entire data collection to be downloaded, i.e. 0.00 GB in 88 files.

      To refine the selection and download, visit the following URL:

           https://archive.eso.org/scienceportal/home?data_collection=ALLSMOG

      and specify the relevant additional query constraints.

      Do you want to proceed with running this script (y/N)?
__EOF__

read continue_prompt

if [ "$continue_prompt" != "y" ]; then
  exit 0;
fi

if test -z "$xargsopts"; then
  #no xargs option speficied, we ensure that only one url
  #after the other will be used
  xargsopts='-L 1'
fi

if test -n "$prompt" -a -z "$list"; then
  trap 'stty echo 2>/dev/null; echo "Cancelled."; exit 1' INT HUP TERM
  stty -echo 2>/dev/null
  printf 'Password: '
  read password
  echo ''
  stty echo 2>/dev/null
fi

# use a tempfile to which only user has access
tempfile=$(mktemp /tmp/dl.XXXXXXXX 2>/dev/null)
test "$tempfile" -a -f $tempfile || {
  tempfile=/tmp/dl.$$
  (umask 077 && : >$tempfile)
}
trap 'rm -f $tempfile' EXIT INT HUP TERM

echo "auth_no_challenge=on" >$tempfile
# older OSs do not seem to include the required CA certificates for ESO
echo "check-certificate=off" >>$tempfile
if [ -n "$prompt" ]; then
  echo "--http-user=$username" >>$tempfile
  echo "--http-password=$password" >>$tempfile

fi
WGETRC=$tempfile
export WGETRC

unset password

if test -n "$list"; then
  cat
else
  xargs $xargsopts wget $download_opts
fi <<'__EOF__'
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.451
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.452
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.453
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.454
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.455
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.456
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.457
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.458
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.459
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.460
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.461
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.462
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.463
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.464
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.465
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.466
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.467
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.468
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.469
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.470
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.471
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.472
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.473
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.474
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.475
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.476
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.477
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.478
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.479
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.480
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.481
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.482
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.483
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.484
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.485
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.486
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.487
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.488
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.489
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.490
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.491
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.492
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.493
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.494
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.495
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.496
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.497
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.498
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.499
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.500
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.501
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.502
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.503
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.504
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.505
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.506
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.507
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.508
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.509
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.510
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.511
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.512
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.513
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.514
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.515
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.516
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.517
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.518
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.519
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.520
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.521
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.522
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.523
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.524
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.525
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.526
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.527
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.528
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.529
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.530
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.531
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.532
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.533
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.534
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.535
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.536
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.537
https://dataportal.eso.org/dataPortal/file/ADP.2017-05-15T21:09:46.538
__EOF__
