#!/bin/bash

#ncmlURL=http://acdisc.gsfc.nasa.gov/opendap/ncml/aggregation/AIRX3STD.006/AIRX3STD.006_Aggregation_2002.ncml
#server=acdisc.gsfc.nasa.gov
#ncml=/opendap/ncml/aggregation/AIRX3STD.006/AIRX3STD.006_Aggregation_2002.ncml



#ncmlURL=http://disc2.gesdisc.eosdis.nasa.gov/opendap/ncml/aggregation/TRMM_3B42_daily/TRMM_3B42_daily_Aggregation_1998.ncml
#server=disc2.gesdisc.eosdis.nasa.gov
#ncml=/opendap/ncml/aggregation/TRMM_3B42_daily/TRMM_3B42_daily_Aggregation_1998.ncml

#ncmlURL=http://disc2.nascom.nasa.gov/opendap/ncml/aggregation/TRMM_3A11/TRMM_3A11_Aggregation.ncml
#server=disc2.nascom.nasa.gov
#ncml=/opendap/ncml/aggregation/TRMM_3A11/TRMM_3A11_Aggregation.ncml


#ncmlURL=http://gpm1.gesdisc.eosdis.nasa.gov/opendap/ncml/aggregation/GPM_3IMERGHH.03/2014/05/GPM_3IMERGHH.03_Aggregation_20140505.ncml
server=gpm1.gesdisc.eosdis.nasa.gov/
ncml=/opendap/ncml/aggregation/GPM_3IMERGHH.03/2014/05/GPM_3IMERGHH.03_Aggregation_20140505.ncml


ncml_file=./$server/`basename $ncml`_ORIGINAL

echo "server:    "$server
echo "ncml:      "$ncml
echo "ncml_file: "$ncml_file

mkdir -p $server

curl -s http://$server$ncml > $ncml_file 

files=`grep location $ncml_file | awk '{start=index($0,"\"")+1; s=substr($0,start); end=index(s,"\"")-1; s=substr(s,0,end); print s;}' -`



for file in $files
do
   
  echo "file:     "$file
  file_url=http://"$server"opendap/hyrax/$file 
  echo "file_url: "$file_url
  dirname=./$server`dirname $file | sed -e "s/\/opendap\/hyrax//g" `
  filename=./$server`echo $file | sed -e "s/\/opendap\/hyrax//g" `
  echo "dirname:  "$dirname
  echo "filename: "$filename
  header=`curl -s -I $file_url | grep -i "Content-Length"`
  echo "header: "$header
  size=`echo $header | awk '{print $2;}' - | strings`
  echo "size: "$size
  
  #echo -n "$size" | wc
  #echo -n "$size" | od -c
  
  done=0
  
  while [ "$done" -eq "0" ]
  do
    mkdir -p $dirname
  
    # touch $filename
    
    if [ -f "$filename" ]  
    then
	echo "File exists." $size
        file_size=`ls -l $filename | awk '{print $5;}' -`
        echo ""
	echo "url:  "$size" bytes"
        echo "file: "$file_size" bytes"
        # echo -n "$file_size" | od -c

        if [ "$file_size" = "$size" ]
        then
            echo "Skipping: File $filename previously downloaded!"
            done=1
        else
            echo "ERROR: Size mismatched.  Previous file download FAILED. Retrying..."
        fi

    fi  

    if [ "$done" -eq "0" ]
    then
    
        echo "FETCHING: "$file_url
        curl -s $file_url > $filename
    
        file_size=`ls -l $filename | awk '{print $5;}' -`
        echo ""
	echo "url:  '"$size"' bytes"
        echo "file: '"$file_size"' bytes"
        # echo -n "$file_size" | od -c

        if [ "$file_size" = "$size" ]
        then
            echo "SUCCESS: File downloaded!"
            done=1
        else
                echo "ERROR: Size mismatched.  File download FAILED. Retrying..."
        fi
    fi
  done
  

  
done
