| 1 | #! /bin/bash
|
|---|
| 2 |
|
|---|
| 3 | function help ()
|
|---|
| 4 | {
|
|---|
| 5 | echo "Usage: `basename $0` [OPTION]... [PACKAGE]..."
|
|---|
| 6 | echo -e "Create a distribution kit of the PACKAGEs (all by default) reachable from the \"main\" package (TestRelease by default) in a user's devarea (defaults to either the environment variable, macro devarea in \${HOME}/cmthome/requirements, first entry in CMTPATH, or \${HOME}/MyTest).\n"
|
|---|
| 7 | echo " -a <dev_area> : select development area <dev_area>"
|
|---|
| 8 | echo " -m <main_pkg> : select \"main\" package <main_pkg> in development area"
|
|---|
| 9 | echo " -r <release> : select Atlas release <release>"
|
|---|
| 10 | echo " -d <kit_dir> : create kit in directory <kit_dir>"
|
|---|
| 11 | echo " -O : package optimized build (debug otherwise)"
|
|---|
| 12 | echo " -S : skip CMT setup"
|
|---|
| 13 | echo -e " -h : display this help and exit\n"
|
|---|
| 14 | echo "Report bugs to <Grigori.Rybkine@rhul.ac.uk>."
|
|---|
| 15 | }
|
|---|
| 16 |
|
|---|
| 17 | #
|
|---|
| 18 | # Process the options and arguments
|
|---|
| 19 | #
|
|---|
| 20 | release=${ATLAS_RELEASE}
|
|---|
| 21 | mode=
|
|---|
| 22 | packages=
|
|---|
| 23 | devarea=${devarea}
|
|---|
| 24 | mainpkg=TestRelease
|
|---|
| 25 | skip=
|
|---|
| 26 |
|
|---|
| 27 | while getopts ":a:m:r:d:OSh" opt; do
|
|---|
| 28 | case $opt in
|
|---|
| 29 | a ) devarea=${OPTARG} ;;
|
|---|
| 30 | m ) mainpkg=${OPTARG} ;;
|
|---|
| 31 | r ) release=${OPTARG} ;;
|
|---|
| 32 | d ) PACMAN_CACHE=${OPTARG} ;;
|
|---|
| 33 | O ) mode=opt ;;
|
|---|
| 34 | S ) skip=true ;;
|
|---|
| 35 | h ) help ; exit 0 ;;
|
|---|
| 36 | \?|: ) help ; exit 1 ;;
|
|---|
| 37 | esac
|
|---|
| 38 | done
|
|---|
| 39 |
|
|---|
| 40 | shift $(($OPTIND - 1))
|
|---|
| 41 |
|
|---|
| 42 | for pkg ; do
|
|---|
| 43 | package=`echo ${pkg} | sed -e 's#^[^/]#/&#' -e 's#[^/]$#&/#'`
|
|---|
| 44 | packages="${packages} ${package}"
|
|---|
| 45 | done
|
|---|
| 46 |
|
|---|
| 47 | shift $#
|
|---|
| 48 |
|
|---|
| 49 | #
|
|---|
| 50 | # Locate the Deployment package
|
|---|
| 51 | #
|
|---|
| 52 | curdir=$PWD
|
|---|
| 53 | cd `dirname $0`
|
|---|
| 54 | dep=$PWD
|
|---|
| 55 |
|
|---|
| 56 | #
|
|---|
| 57 | # Connect to the release
|
|---|
| 58 | #
|
|---|
| 59 | if [ -z ${skip} ] ; then
|
|---|
| 60 |
|
|---|
| 61 | cd ${HOME}/cmthome || exit
|
|---|
| 62 | if [ "${release}" ] && [ "${mode}" ] ; then
|
|---|
| 63 | source setup.sh -tag=${release},${mode}
|
|---|
| 64 | if [ -z "${devarea}" ] ; then
|
|---|
| 65 | devarea=`cmt show macro_value devarea -tag=${release},${mode}`
|
|---|
| 66 | fi
|
|---|
| 67 | elif [ "${release}" ] && [ -z "${mode}" ] ; then
|
|---|
| 68 | source setup.sh -tag=${release}
|
|---|
| 69 | # mode=`cmt system | sed 's/.*\-//g'`
|
|---|
| 70 | [ "${devarea}" ] || devarea=`cmt show macro_value devarea -tag=${release}`
|
|---|
| 71 | elif [ -z "${release}" ] && [ "${mode}" ] ; then
|
|---|
| 72 | source setup.sh -tag=${mode}
|
|---|
| 73 | release=`cmt show macro_value ATLAS_RELEASE -tag=${mode}`
|
|---|
| 74 | [ "${devarea}" ] || devarea=`cmt show macro_value devarea -tag=${mode}`
|
|---|
| 75 | else
|
|---|
| 76 | source setup.sh
|
|---|
| 77 | release=`cmt show macro_value ATLAS_RELEASE`
|
|---|
| 78 | # mode=`cmt system | sed 's/.*\-//g'`
|
|---|
| 79 | [ "${devarea}" ] || devarea=`cmt show macro_value devarea`
|
|---|
| 80 | fi
|
|---|
| 81 |
|
|---|
| 82 | else
|
|---|
| 83 | which cmt > /dev/null 2>&1 || { echo "CMT not setup" ; exit 1; }
|
|---|
| 84 | fi
|
|---|
| 85 |
|
|---|
| 86 | [ "${release}" ] || { echo "Select Atlas release, please" ; exit 1; }
|
|---|
| 87 |
|
|---|
| 88 | cmt_path_purge=`echo $CMTPATH | sed s/^:*//`
|
|---|
| 89 | cmt_path_0=`echo ${cmt_path_purge} | cut -d: -f1`
|
|---|
| 90 |
|
|---|
| 91 | if [ "${devarea}" ] ; then
|
|---|
| 92 | if echo ${devarea} | grep -vq ^/ ; then
|
|---|
| 93 | devarea=${curdir}/${devarea}
|
|---|
| 94 | fi
|
|---|
| 95 | devarea=`echo ${devarea} | sed 's#/*$##'`
|
|---|
| 96 | [ "${devarea}" != "${cmt_path_0}" ] && export CMTPATH=${devarea}:${CMTPATH}
|
|---|
| 97 | else
|
|---|
| 98 | # devarea specified through neither the option, environment nor macro
|
|---|
| 99 | devarea=${cmt_path_0}
|
|---|
| 100 | if [ -z "${devarea}" ] ; then
|
|---|
| 101 | devarea=${HOME}/MyTest ; export CMTPATH=${devarea}:${CMTPATH}
|
|---|
| 102 | fi
|
|---|
| 103 | echo "Using ${devarea} as devarea"
|
|---|
| 104 | fi
|
|---|
| 105 |
|
|---|
| 106 | if [ "${mode}" ]; then
|
|---|
| 107 | mode_opt="-platform ${mode}"
|
|---|
| 108 | else
|
|---|
| 109 | mode_opt=
|
|---|
| 110 | fi
|
|---|
| 111 |
|
|---|
| 112 | if [ "${PACMAN_CACHE}" ]; then
|
|---|
| 113 | if echo ${PACMAN_CACHE} | grep -vq ^/ ; then
|
|---|
| 114 | PACMAN_CACHE=${curdir}/${PACMAN_CACHE}
|
|---|
| 115 | fi
|
|---|
| 116 | else
|
|---|
| 117 | PACMAN_CACHE=/tmp/${LOGNAME}/${release}
|
|---|
| 118 | echo "Creating kit in ${PACMAN_CACHE}"
|
|---|
| 119 | fi
|
|---|
| 120 |
|
|---|
| 121 | export PACMAN_CACHE
|
|---|
| 122 | mkdir -p ${PACMAN_CACHE}
|
|---|
| 123 |
|
|---|
| 124 | #
|
|---|
| 125 | # Select the top location from which the construction kit will be broadcast
|
|---|
| 126 | #
|
|---|
| 127 | cd ${devarea}/${mainpkg}/${mainpkg}*/cmt || exit
|
|---|
| 128 |
|
|---|
| 129 | #
|
|---|
| 130 | # Set up the release context
|
|---|
| 131 | #
|
|---|
| 132 | source setup.sh -no_cleanup
|
|---|
| 133 |
|
|---|
| 134 | #
|
|---|
| 135 | # Connect to the patch directory
|
|---|
| 136 | #
|
|---|
| 137 | patches=/afs/cern.ch/user/a/alibrari/Kit/patches
|
|---|
| 138 | patches_opt="-patches ${patches}"
|
|---|
| 139 |
|
|---|
| 140 | #
|
|---|
| 141 | # May need to construct the cycles file
|
|---|
| 142 | #
|
|---|
| 143 | if [ -r ${patches}/cycles_${release}.txt ] ; then
|
|---|
| 144 | cycles_opt="-cycles ${patches}/cycles_${release}.txt"
|
|---|
| 145 | else
|
|---|
| 146 | cmt -quiet show cycles >| ${PACMAN_CACHE}/cycles_${release}.txt
|
|---|
| 147 | cycles_opt="-cycles ${PACMAN_CACHE}/cycles_${release}.txt"
|
|---|
| 148 | fi
|
|---|
| 149 |
|
|---|
| 150 | #
|
|---|
| 151 | # Run the construction kit
|
|---|
| 152 | #
|
|---|
| 153 | if [ -z "${packages}" ] ; then
|
|---|
| 154 | ${dep}/create_project_kits.sh ${mode_opt}
|
|---|
| 155 | cmt broadcast -local ${dep}/create_kit.sh ${patches_opt} ${cycles_opt} ${mode_opt} ${PACMAN_CACHE}
|
|---|
| 156 | else
|
|---|
| 157 | cmt broadcast -local -select="${packages}" ${dep}/create_kit.sh ${patches_opt} ${cycles_opt} ${mode_opt} ${PACMAN_CACHE}
|
|---|
| 158 | #cmt -quiet broadcast -local -select="${packages}" ${dep}/create_kit.sh ${patches_opt} ${cycles_opt} ${mode_opt} ${PACMAN_CACHE}
|
|---|
| 159 | fi
|
|---|
| 160 |
|
|---|
| 161 | cd $curdir
|
|---|
| 162 |
|
|---|