#!/bin/bash
# list available manifests
usage()
{
echo "$(basename ${0}) [bundle] [release]"
echo "USAGE:"
echo " If no arguments are specified, return a list of bundles."
echo " If the bundle is specified, return a list of releases for this bundle."
echo " If both release and bundle are specified, return a list of manifests."
echo
}
print_version()
{
echo "$(basename ${0}) 1.03.00"
}
print_available_bundles()
{
url="https://scisoft.fnal.gov/scisoft/bundles/"
bundle_list=(`curl --silent -F "web=/dev/null;type=text/html" ${url} \
| grep \
\
| cut -f2 -d'"' \
| grep -v tools
`)
echo "Available bundles"
for (( k=0; k<${#bundle_list[@]}; k++ ));
do
echo " ${bundle_list[$k]}"
done
}
print_available_releases()
{
url="https://scisoft.fnal.gov/scisoft/bundles/${bundle}/"
release_list=(`curl --silent -F "web=/dev/null;type=text/html" ${url} \
| grep \ | \
| cut -f2 -d'"'
`)
echo "Available releases"
for (( k=0; k<${#release_list[@]}; k++ ));
do
echo " ${bundle} ${release_list[$k]}"
done
}
print_available_manifests()
{
url="https://scisoft.fnal.gov/scisoft/bundles/${bundle}/${release}/manifest/"
manifest_list=(`curl --silent -F "web=/dev/null;type=text/html" ${url} \
| grep \ | \
| cut -f2 -d'"'
`)
echo "Available manifests"
dotver=`echo ${release} | sed -e 's/_/./g' | sed -e 's/^v//'`
for (( k=0; k<${#manifest_list[@]}; k++ ));
do
short_name=`echo ${manifest_list[$k]} | sed -e 's/_MANIFEST.txt//' | sed "s/${bundle}-${dotver}-//" \
| sed -e 's/Darwin64bit+12/d12/' \
| sed -e 's/Darwin64bit+13/d13/' \
| sed -e 's/Darwin64bit+14/d14/' \
| sed -e 's/Darwin64bit+15/d15/' \
| sed -e 's/Darwin64bit+16/d16/' \
| sed -e 's/Darwin64bit+17/d17/' \
| sed -e 's/Darwin64bit+18/d18/' \
| sed -e 's/Linux64bit+2\.6-2\.5/slf5/' \
| sed -e 's/Linux64bit+2\.6-2\.12/slf6/' \
| sed -e 's/Linux64bit+3\.10-2\.17/slf7/' \
| sed -e 's/Linux64bit+3\.13-2\.19/u14/' \
| sed -e 's/Linux64bit+3\.16-2\.19/u14/' \
| sed -e 's/Linux64bit+3\.19-2\.19/u14/' \
| sed -e 's/Linux64bit+4\.4-2\.23/u16/' \
| sed -e 's/Linux64bit+4\.15-2\.27/u18/'`
platform=`echo ${short_name} | cut -f1 -d "-"`
quals=`echo ${short_name} | sed -e s"/${platform}-//" \
| sed -e 's/source//' \
| sed -e 's/-debug/ debug/' | sed -e 's/-prof/ prof/' | sed -e 's/-opt/ opt/'`
echo "${platform} ${bundle}-${release} ${quals}"
done
}
while getopts :hV OPT; do
case ${OPT} in
h)
usage
exit 1
;;
V)
print_version
exit 1
;;
*)
usage
exit 1
esac
done
shift `expr $OPTIND - 1`
bundle="${1}"
release="${2}"
print_version
if [ -z ${bundle} ]
then
print_available_bundles
exit 0
fi
if [ -z ${release} ]
then
print_available_releases
exit 0
fi
print_available_manifests
exit 0
|