#!/bin/bash
##############################################################
#
# This is a script to download files from the GSL using curl.
# When prompted for a username/password, use the same
# username/password that you use to log in to the GSL website.
#
# usage: dls_gsl_curl_download.sh <file list>
#
##############################################################
# COPYRIGHT 2016 GENOMIC SERVICES LABORATORY
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# Version Change: DLS 2024-07.

DL_LIST=$1
if [ -z "$DL_LIST" ]; then
    echo "usage: dls_gsl_curl_download.sh <file list>"
    exit 1
fi

LINE=$(head -n 1 $DL_LIST)
if [[ $LINE == *"hadiscoverydata.dls.com"* ]]
then
    for FPATH in `cat $DL_LIST`; do
        if (( $(grep -c "?" $DL_LIST) )); then
            curl -L -o $( echo $FPATH | rev | cut -d"/" -f1 | rev | cut -d"?" -f1 ) $FPATH;
        else
            curl -L -O $FPATH;
        fi
    done
elif [[ $LINE == *"dl.dnanex"* ]]; then
    for FPATH in `cat $DL_LIST`; do
        curl -L -O $FPATH;

    done
else
    echo -n "username: "
    read GSL_USERNAME
    echo -n "password: "
    stty -echo
    read GSL_PASSWORD
    stty echo
    touch .curl_config
    chmod go-rwx .curl_config
    echo "-u ${GSL_USERNAME}:${GSL_PASSWORD}" > .curl_config

    for FPATH in `cat $DL_LIST`; do
        if (( $(grep -c "?" $DL_LIST) )); then
            curl -L -K .curl_config -o $( echo $FPATH | rev | cut -d"/" -f1 | rev | cut -d"?" -f1 ) $FPATH;
        else
            curl -L -O -K .curl_config $FPATH;
        fi
    done
    
    rm .curl_config
fi
