function all_packages () { top=$1 shift if test -d ${base}/${release}/${top}/cmt; then cd ${base}/${release}/${top}/cmt else cd ${base}/${release}/${top}/*/cmt if test ! $? = 0; then echo "run_create_kit.sh> Cannot move to the top package as [${base}/${release}/${top}/*/cmt]" exit fi fi select_opt= if test ! "${selected}" = ""; then select_opt="-select='${selected}'" fi echo "all_packages> cmt broadcast -global -select=${selected} - ${dep}/create_kit.sh -release ${release} ${patch_opt} ${cycles_opt} ${platform_opt} ${pacman_cache} ${override_opt} ${source_opt}" cmt broadcast -global -select="${selected}" - \ ${dep}/create_kit.sh \ -release ${release} \ ${patch_opt} \ ${cycles_opt} \ ${platform_opt} \ ${pacman_cache} \ ${override_opt} \ ${source_opt} 2>&1 | cat } function CMT () { # # CMT itself # cmtversion=`cmt -quiet version` echo "create_all_kits.sh> Constructing the pacman kit for CMT ${cmtversion} [${platform}] into ${pacman_cache}" cat ${dep}/CMTCONFIG.pacman | \ sed -e 's#${cmtversion}#'"${cmtversion}"'#g' \ -e 's#${CMTCONFIG}#'"${CMTCONFIG}"'#g' >| ${pacman_cache}/cache/CMTCONFIG-${cmtversion}-${platform}.pacman cat ${dep}/CMT.pacman | \ sed -e 's#${cmtversion}#'"${cmtversion}"'#g' >| ${pacman_cache}/cache/CMT-${cmtversion}.pacman } function help () { echo "create_all_kits.sh" echo "" echo " External parameters:" echo ' ${CMTPATH} : as for the normal release usage' echo ' ${PACMAN_CACHE} : where to create the kit' echo "" echo " Arguments:" echo " --help : get this help" echo " -base : the base directory of the release [no default]" echo " -release : the release id [no default]" echo " -top : the top package [no default]" echo " -p : select this package instead of all [can be multiple]" echo " -cmtversion : the CMT version" echo " -patches : location of patches for requirements files" echo " -cycles : text file containing the output of cmt show cycles" echo " -platform : suffix characterizing the platform" echo " -override : override existings kits [default is to keep them]" echo " -step : one of (projects|all|CMT)" echo " -source : create source kits" echo " [ ...] : list of missing packages to manually add to this release" echo "" } #----------------------------------------- # main #----------------------------------------- ##set -x echo "create_all_kits> args=[$*]" # generic definitions dep=`dirname $0` dep=`(cd ${dep}; pwd)` export SITEROOT=/afs/cern.ch top= cmtversion=`cmt version` patch_dir= patch_opt= cycles_file= cycles_opt= platform= platform_suffix= platform_opt= override_opt= selected= source_opt= while test ! $# = 0; do arg=$1 ##echo "arg=[${arg}]" if test "${arg}" = "-step"; then shift step=$1 elif test "${arg}" = "-base"; then shift base=$1 elif test "${arg}" = "-top"; then shift top=$1 elif test "${arg}" = "-release"; then shift release=$1 elif test "${arg}" = "-p"; then shift package=$1 package=`echo ${package} | sed -e 's#^[^/]#/&#' -e 's#[^/]$#&/#'` selected="${selected} ${package}" elif test "${arg}" = "-cmtversion"; then shift cmtversion=$1 elif test "${arg}" = "-patches"; then shift patch_dir=$1 patch_opt="-patches ${patch_dir}" elif test "${arg}" = "-cycles"; then shift cycles_file=$1 cycles_opt="-cycles ${cycles_file}" elif test "${arg}" = "-platform"; then shift platform=$1 platform_suffix="-${platform}"; platform_opt="-platform ${platform}"; elif test "${arg}" = "-override"; then shift override_opt="-override" elif test "${arg}" = "-source"; then shift source_opt="-source" platform="src" platform_suffix="-${platform}"; platform_opt="-platform ${platform}"; elif test "${arg}" = "--help"; then help exit fi shift done # # Checking effective arguments # if test "${CMTPATH}" = ""; then echo "CMTPATH must be defined first." help exit fi if test "${PACMAN_CACHE}" = ""; then echo "PACMAN_CACHE must be defined first." help exit fi if test "${base}" = ""; then echo "Please specify the base directory of the release using the -base option." help exit fi if test "${release}" = ""; then echo "Please specify the release id using the -release option." help exit fi if test "${top}" = ""; then echo "Please specify the top package using the -top option." help exit fi pacman_cache=${PACMAN_CACHE} kits_dir=${pacman_cache}/kits cache_dir=${pacman_cache}/cache if test ! -d ${kits_dir}; then mkdir -p ${kits_dir} fi if test ! -d ${cache_dir}; then mkdir -p ${cache_dir} fi #echo step=${step} #echo "selected=[${selected}]" #echo "patch_opt=[${patch_opt}]" #echo "cycles_opt=[${cycles_opt}]" #echo "platform_opt=[${platform_opt}]" #echo "pacman_cache=[${pacman_cache}]" #echo "override_opt=[${override_opt}]" #echo "source_opt=[${source_opt}]" if test ! "${source_opt}" = ""; then ${dep}/create_project_kits.sh ${platform_opt} all_packages ${top} elif test "${step}" = ""; then CMT ${dep}/create_project_kits.sh ${platform_opt} all_packages ${top} else if test "${step}" = "projects"; then ${dep}/create_project_kits.sh ${platform_opt} elif test "${step}" = "all"; then all_packages ${top} elif test "${step}" = "CMT"; then CMT fi fi