Improve download script

This commit is contained in:
Shahram Najm 2014-08-21 15:58:13 +01:00
parent 88962a93cc
commit 7889079309
1 changed files with 63 additions and 283 deletions

View File

@ -1,11 +1,42 @@
#!/bin/sh
DATA_DIR=$1
usage ()
{
prog=`basename $0`
echo "Usage: $prog [-v] data_dir"
echo
echo "-v verbose"
echo "-h prints this help message"
echo
}
VERBOSE=0
while :
do
case "$1" in
-h) usage ; exit 0;;
-v) VERBOSE=1
echo "Running with verbose setting"
;;
--) shift ; break ;;
-*) usage ; exit 0;;
*) break;;
esac
shift
done
DATA_DIR=$1
if [ -z "$DATA_DIR" ]; then
echo "Error: No directory specified." 2>&1
usage
exit 1
fi
# Check if all downloads are already done
DOWNLOADED=${DATA_DIR}/.downloaded
if [ -f $DOWNLOADED ]; then
if [ -f "${DATA_DIR}/.downloaded" ]; then
if [ $VERBOSE -eq 1 ]; then
echo "All downloads are already done. Exiting."
fi
exit 0
fi
@ -333,282 +364,27 @@ files="
tigge/tigge_sbsj_sfc_tcw.grib
tigge/tigge_sbsj_sfc_tp.grib
tigge/tiggelam_cnmc_sfc.grib
bufr/aaen_55.bufr
bufr/aben_55.bufr
bufr/ahws_139.bufr
bufr/airc_142.bufr
bufr/airc_144.bufr
bufr/airs_57.bufr
bufr/alws_139.bufr
bufr/amda_144.bufr
bufr/amsa_55.bufr
bufr/amsb_55.bufr
bufr/amse_55.bufr
bufr/amsu_55.bufr
bufr/amv2_87.bufr
bufr/amv3_87.bufr
bufr/asbh_139.bufr
bufr/asbl_139.bufr
bufr/asca_139.bufr
bufr/asch_139.bufr
bufr/ascs_139.bufr
bufr/aseh_139.bufr
bufr/asel_139.bufr
bufr/ashs_139.bufr
bufr/atap_55.bufr
bufr/ateu_155.bufr
bufr/atms_201.bufr
bufr/atov_55.bufr
bufr/avhm_87.bufr
bufr/avhn_87.bufr
bufr/avhr_58.bufr
bufr/b002_95.bufr
bufr/b002_96.bufr
bufr/b003_56.bufr
bufr/b004_145.bufr
bufr/b005_87.bufr
bufr/b005_89.bufr
bufr/b006_96.bufr
bufr/b007_31.bufr
bufr/bssh_170.bufr
bufr/bssh_176.bufr
bufr/bssh_178.bufr
bufr/bssh_180.bufr
bufr/btem_109.bufr
bufr/buoy_27.bufr
bufr/cmwi_87.bufr
bufr/cmwn_87.bufr
bufr/cnow_28.bufr
bufr/cori_156.bufr
bufr/crit_202.bufr
bufr/csrh_189.bufr
bufr/emsg_189.bufr
bufr/emsg_87.bufr
bufr/euwv_87.bufr
bufr/fy3a_154.bufr
bufr/fy3b_154.bufr
bufr/g2nd_208.bufr
bufr/g2to_206.bufr
bufr/go15_87.bufr
bufr/goee_87.bufr
bufr/goes_87.bufr
bufr/goga_89.bufr
bufr/gosat.bufr
bufr/grst_26.bufr
bufr/gsd1_208.bufr
bufr/gsd2_208.bufr
bufr/gsd3_208.bufr
bufr/gst4_26.bufr
bufr/hirb_55.bufr
bufr/hirs_55.bufr
bufr/ias1_240.bufr
bufr/iasi_241.bufr
bufr/ifco_208.bufr
bufr/ikco_217.bufr
bufr/itrg_208.bufr
bufr/itwt_233.bufr
bufr/j2eo_216.bufr
bufr/j2nb_216.bufr
bufr/jaso_214.bufr
bufr/kond_209.bufr
bufr/maer_207.bufr
bufr/meta_140.bufr
bufr/mhen_55.bufr
bufr/mhsa_55.bufr
bufr/mhsb_55.bufr
bufr/mhse_55.bufr
bufr/mloz_206.bufr
bufr/modi_87.bufr
bufr/modw_87.bufr
bufr/monw_87.bufr
bufr/nomi_206.bufr
bufr/nos1_208.bufr
bufr/nos2_208.bufr
bufr/nos3_208.bufr
bufr/nos4_208.bufr
bufr/nos5_208.bufr
bufr/nos6_208.bufr
bufr/nos7_208.bufr
bufr/nos8_208.bufr
bufr/ocea_131.bufr
bufr/ocea_132.bufr
bufr/ocea_133.bufr
bufr/ocea_21.bufr
bufr/pgps_110.bufr
bufr/pilo_91.bufr
bufr/rada_250.bufr
bufr/rado_250.bufr
bufr/s4kn_165.bufr
bufr/sb19_206.bufr
bufr/sbu8_206.bufr
bufr/ship_11.bufr
bufr/ship_12.bufr
bufr/ship_13.bufr
bufr/ship_14.bufr
bufr/ship_19.bufr
bufr/ship_9.bufr
bufr/smin_49.bufr
bufr/smis_49.bufr
bufr/smiu_49.bufr
bufr/smos_203.bufr
bufr/sn4k_165.bufr
bufr/soil_7.bufr
bufr/ssbt_127.bufr
bufr/stuk_7.bufr
bufr/syno_1.bufr
bufr/syno_2.bufr
bufr/syno_3.bufr
bufr/syno_4.bufr
bufr/temp_101.bufr
bufr/temp_102.bufr
bufr/temp_106.bufr
bufr/tmr7_129.bufr
bufr/tros_31.bufr
bufr/wavb_134.bufr
bufr/aaen_55.bufr.num.ref
bufr/aben_55.bufr.num.ref
bufr/ahws_139.bufr.num.ref
bufr/airc_142.bufr.num.ref
bufr/airc_144.bufr.num.ref
bufr/airs_57.bufr.num.ref
bufr/alws_139.bufr.num.ref
bufr/amda_144.bufr.num.ref
bufr/amsa_55.bufr.num.ref
bufr/amsb_55.bufr.num.ref
bufr/amse_55.bufr.num.ref
bufr/amsu_55.bufr.num.ref
bufr/amv2_87.bufr.num.ref
bufr/amv3_87.bufr.num.ref
bufr/asbh_139.bufr.num.ref
bufr/asbl_139.bufr.num.ref
bufr/asca_139.bufr.num.ref
bufr/asch_139.bufr.num.ref
bufr/ascs_139.bufr.num.ref
bufr/aseh_139.bufr.num.ref
bufr/asel_139.bufr.num.ref
bufr/ashs_139.bufr.num.ref
bufr/atap_55.bufr.num.ref
bufr/ateu_155.bufr.num.ref
bufr/atms_201.bufr.num.ref
bufr/atov_55.bufr.num.ref
bufr/avhm_87.bufr.num.ref
bufr/avhn_87.bufr.num.ref
bufr/avhr_58.bufr.num.ref
bufr/b002_95.bufr.num.ref
bufr/b002_96.bufr.num.ref
bufr/b003_56.bufr.num.ref
bufr/b004_145.bufr.num.ref
bufr/b005_87.bufr.num.ref
bufr/b005_89.bufr.num.ref
bufr/b006_96.bufr.num.ref
bufr/b007_31.bufr.num.ref
bufr/bssh_170.bufr.num.ref
bufr/bssh_176.bufr.num.ref
bufr/bssh_178.bufr.num.ref
bufr/bssh_180.bufr.num.ref
bufr/btem_109.bufr.num.ref
bufr/buoy_27.bufr.num.ref
bufr/cmwi_87.bufr.num.ref
bufr/cmwn_87.bufr.num.ref
bufr/cnow_28.bufr.num.ref
bufr/cori_156.bufr.num.ref
bufr/crit_202.bufr.num.ref
bufr/csrh_189.bufr.num.ref
bufr/emsg_189.bufr.num.ref
bufr/emsg_87.bufr.num.ref
bufr/euwv_87.bufr.num.ref
bufr/fy3a_154.bufr.num.ref
bufr/fy3b_154.bufr.num.ref
bufr/g2nd_208.bufr.num.ref
bufr/g2to_206.bufr.num.ref
bufr/go15_87.bufr.num.ref
bufr/goee_87.bufr.num.ref
bufr/goes_87.bufr.num.ref
bufr/goga_89.bufr.num.ref
bufr/gosat.bufr.num.ref
bufr/grst_26.bufr.num.ref
bufr/gsd1_208.bufr.num.ref
bufr/gsd2_208.bufr.num.ref
bufr/gsd3_208.bufr.num.ref
bufr/gst4_26.bufr.num.ref
bufr/hirb_55.bufr.num.ref
bufr/hirs_55.bufr.num.ref
bufr/ias1_240.bufr.num.ref
bufr/iasi_241.bufr.num.ref
bufr/ifco_208.bufr.num.ref
bufr/ikco_217.bufr.num.ref
bufr/itrg_208.bufr.num.ref
bufr/itwt_233.bufr.num.ref
bufr/j2eo_216.bufr.num.ref
bufr/j2nb_216.bufr.num.ref
bufr/jaso_214.bufr.num.ref
bufr/kond_209.bufr.num.ref
bufr/maer_207.bufr.num.ref
bufr/meta_140.bufr.num.ref
bufr/mhen_55.bufr.num.ref
bufr/mhsa_55.bufr.num.ref
bufr/mhsb_55.bufr.num.ref
bufr/mhse_55.bufr.num.ref
bufr/mloz_206.bufr.num.ref
bufr/modi_87.bufr.num.ref
bufr/modw_87.bufr.num.ref
bufr/monw_87.bufr.num.ref
bufr/nomi_206.bufr.num.ref
bufr/nos1_208.bufr.num.ref
bufr/nos2_208.bufr.num.ref
bufr/nos3_208.bufr.num.ref
bufr/nos4_208.bufr.num.ref
bufr/nos5_208.bufr.num.ref
bufr/nos6_208.bufr.num.ref
bufr/nos7_208.bufr.num.ref
bufr/nos8_208.bufr.num.ref
bufr/ocea_131.bufr.num.ref
bufr/ocea_132.bufr.num.ref
bufr/ocea_133.bufr.num.ref
bufr/ocea_21.bufr.num.ref
bufr/pgps_110.bufr.num.ref
bufr/pilo_91.bufr.num.ref
bufr/rada_250.bufr.num.ref
bufr/rado_250.bufr.num.ref
bufr/s4kn_165.bufr.num.ref
bufr/sb19_206.bufr.num.ref
bufr/sbu8_206.bufr.num.ref
bufr/ship_11.bufr.num.ref
bufr/ship_12.bufr.num.ref
bufr/ship_13.bufr.num.ref
bufr/ship_14.bufr.num.ref
bufr/ship_19.bufr.num.ref
bufr/ship_9.bufr.num.ref
bufr/smin_49.bufr.num.ref
bufr/smis_49.bufr.num.ref
bufr/smiu_49.bufr.num.ref
bufr/smos_203.bufr.num.ref
bufr/sn4k_165.bufr.num.ref
bufr/soil_7.bufr.num.ref
bufr/ssbt_127.bufr.num.ref
bufr/stuk_7.bufr.num.ref
bufr/syno_1.bufr.num.ref
bufr/syno_2.bufr.num.ref
bufr/syno_3.bufr.num.ref
bufr/syno_4.bufr.num.ref
bufr/temp_101.bufr.num.ref
bufr/temp_102.bufr.num.ref
bufr/temp_106.bufr.num.ref
bufr/tmr7_129.bufr.num.ref
bufr/tros_31.bufr.num.ref
bufr/wavb_134.bufr.num.ref
"
[ -d "${DATA_DIR}/bufr" ] || mkdir "${DATA_DIR}/bufr"
[ -d "${DATA_DIR}/tigge" ] || mkdir "${DATA_DIR}/tigge"
# Decide what tool to use to download data
DNLD_PROG=""
if command -v wget >/dev/null 2>&1; then
DNLD_PROG="wget --tries=1 --timeout=3 -nv -q -O"
PROG=wget
OPTIONS="--tries=1 --timeout=3 -nv -q -O"
if [ $VERBOSE -eq 1 ]; then
OPTIONS="--tries=1 --timeout=3 -nv -O"
fi
DNLD_PROG="$PROG $OPTIONS"
fi
if command -v curl >/dev/null 2>&1; then
DNLD_PROG="curl --silent --show-error --fail --output"
PROG=curl
OPTIONS="--silent --show-error --fail --output"
if [ $VERBOSE -eq 1 ]; then
OPTIONS="--show-error --fail --output"
fi
DNLD_PROG="$PROG $OPTIONS"
fi
if test "x$DNLD_PROG" = "x"; then
echo "Cannot find tool to transfer data from download server. Aborting." 1>&2
@ -619,19 +395,23 @@ download_URL="http://download.ecmwf.org"
cd ${DATA_DIR}
echo "Downloading data files for testing..."
for f in $files; do
# If we haven't already got the file, download it
if [ ! -f "$f" ]; then
$DNLD_PROG $f ${download_URL}/test-data/grib_api/data/$f
if [ $? -ne 0 ]; then
echo "Failed to download file: $f"
exit 1
fi
#chmod 444 $f
if [ $VERBOSE -eq 1 ]; then
echo "Downloaded $f ..."
fi
fi
# If we haven't already got the file, download it
if [ ! -f "$f" ]; then
if [ $VERBOSE -eq 1 ]; then
echo "$DNLD_PROG $f ${download_URL}/test-data/grib_api/data/$f"
fi
$DNLD_PROG $f ${download_URL}/test-data/grib_api/data/$f
if [ $? -ne 0 ]; then
echo "Failed to download file: $f"
exit 1
fi
if [ $VERBOSE -eq 1 ]; then
echo "Downloaded $f ..."
fi
fi
done
# Add a file to indicate we've done the download
touch ${DOWNLOADED}
touch .downloaded
echo "Downloads completed."