#!/bin/bash
# Usage:
#
# list_projects [ <project> ...]
#
# By default the script assumes that the releases are installed at a relative location
# compared to itself.
# 
# Script:
# /afs/cern.ch/atlas/project/tdaq/cmake/cmake_tdaq/bin/cm_setup.sh
#
# Releases:
# /afs/cern.ch/atlas/project/tdaq/cmake/projects/<project>/<version>/installed/setup.sh
# 
# If this location is not correct, it should be specified in TDAQ_RELEASE_BASE
#
# Examples:
#
# list_projects 
# list_projects tdaq
# list_projects tdaq-common dqm-common
# 

_cmake_tdaq=$(dirname $(dirname $(readlink -f ${BASH_SOURCE[0]})))
export TDAQ_RELEASE_BASE=${TDAQ_RELEASE_BASE:=$(dirname ${_cmake_tdaq})/projects}

if [ ! -d ${TDAQ_RELEASE_BASE} ]; then
    export TDAQ_RELEASE_BASE=/cvmfs/atlas.cern.ch/repo/sw/tdaq
fi

_projects=$@
if [ -z "${_projects}" ]; then
    _projects="tdaq"
fi

for _project in ${_projects}
do
    for p in $(echo ${TDAQ_RELEASE_BASE}/${_project}/*/installed/*slc* ${TDAQ_RELEASE_BASE}/${_project}/*/installed/*centos*)
    do
        if [ ! -d ${p} ]; then
           continue
        fi
        config=$(basename ${p})
        version=$(basename $(dirname $(dirname ${p})))
        if [ -L ${TDAQ_RELEASE_BASE}/${_project}/${version} ]; then
            linked="-> $(basename $(readlink -e ${TDAQ_RELEASE_BASE}/${_project}/${version}))"
        else
            linked="${TDAQ_RELEASE_BASE}/${_project}/${version}"
        fi
        printf "%-30s%-30s%-30s\n" ${version} ${config} "${linked}"
    done | sort
done
