From 7889079309693ca999edcfe12322381a996314f7 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Thu, 21 Aug 2014 15:58:13 +0100 Subject: [PATCH] Improve download script --- data/download.sh | 346 +++++++++-------------------------------------- 1 file changed, 63 insertions(+), 283 deletions(-) diff --git a/data/download.sh b/data/download.sh index aa604600b..e6e6c39f9 100755 --- a/data/download.sh +++ b/data/download.sh @@ -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."