#!/bin/sh
function main()
{
    getSrcPathsByDateRange "2011-07-01 03:00:00" "2011-08-13 02:00:00"
}


function getSrcPathsByDateRange()
{
    dateStart=$1
    dateEnd=$2
    deltaHour=6

    # set hour to zero
    dateStart=$(date --date="$dateStart" +%Y-%m-%d)
    dateEnd=$(date --date="$dateEnd" +%Y-%m-%d)

    # set hour of the last day to 18
    dateEnd=$(date --date="$dateEnd +18hours")

    validTime=$dateStart
    srcPaths=""
    for i in $(seq $((365*4*100))); do #just to be safe
        srcPath=$(getSrcPathByValidTime $validTime)
        srcPaths="$srcPaths $srcPath"
        validTime=$(date --date="$validTime +${deltaHour}hours")
        log $validTime
    done
}


function getSrcPathByValidTime()
{
    validTime=$1

    # translate to init time and lead
    validTime=$(date --date="$validTime")
    validHour=$(date --date="$validTime" +%H)
    validHour=$(printf "%d" $validHour) # remove leading zero

    lead=$(( $validHour - 12 )) # how long from 12 o'clock?
    if (( "$lead" < "0" )); then
        lead=$(( $lead + 24 ))
    fi
    initTime=$(date --date="$validTime -${lead}hours")
    echo $(getSrcPathByInitTimeAndLead "$initTime" "$lead")
}


function getSrcPathByInitTimeAndLead()
{
    # /home/CWA_MDPS/hycom_hindcast/data/raw/2011/ssh/07/hycom_ssh_2011071312_t006.nc
    initTime=$1
    lead=$2

    initTime=$(date --date="$initTime" +%Y%m%d)
    initYear=${initTime:0:4}
    initMonth=${initTime:4:2}
    initDay=${initTime:6:2}
    initHour=12
    
    lead=$(printf "%03d" $lead)

    rootDir=/home/CWA_MDPS/hycom_hindcast/data/raw
    path="$rootDir/$initYear/ssh/$initMonth/hycom_ssh_$initYear$initMonth$initDay${initHour}_t${lead}.nc"
    echo $path
}


function log()
{
    printf "%s" "$@"
    printf "\n"
}


main
