#!/bin/bash -e
usage='makeTrixLinks trixName outputPath ${DBS}'

if [ $# -lt 3 ] ; then
    echo "wrong # args: $usage" >&2
    exit 1
fi

trixName="$1"; shift
outPath="$1" ; shift
dbs="$@"

# check if a database exists, print note and return non-zero if it doesn't
dbExists() {
    local db="$1"
    local dbChk=$(hgsql -Ne 'show databases like "'$db'"')
    if [ -z "$dbChk" ] ; then
        echo "Note: database $db does not exist, skipping"
        return 1
    else
        return 0
    fi
}

makeTrixLinks() {
    local db="$1"
    local trixName="$2"
    local outPath="$3"
    rm -f /gbdb/$db/$trixName.ix /gbdb/$db/$trixName.ixx /gbdb/$db/$trixName.offsets /gbdb/$db/$trixName.offsets.ixx /gbdb/$db/$trixName.txt
    ln -s $outPath/${db}_$trixName.ix /gbdb/$db/$trixName.ix
    ln -s $outPath/${db}_$trixName.ixx /gbdb/$db/$trixName.ixx
    ln -s $outPath/${db}_$trixName.offsets /gbdb/$db/$trixName.offsets
    ln -s $outPath/${db}_$trixName.offsets.ixx /gbdb/$db/$trixName.offsets.ixx
    ln -s $outPath/${db}_$trixName.txt /gbdb/$db/$trixName.txt
}

for db in $dbs ; do
    if dbExists $db ; then
        makeTrixLinks $db $trixName $outPath
    fi
done
