source: cmtpacman/HEAD/contrib/userdist.sh @ 693

Last change on this file since 693 was 53, checked in by arnault, 19 years ago

From CVS to SVN

File size: 4.4 KB
Line 
1#! /bin/bash
2
3function 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#
20release=${ATLAS_RELEASE}
21mode=
22packages=
23devarea=${devarea}
24mainpkg=TestRelease
25skip=
26
27while 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
38done
39
40shift $(($OPTIND - 1))
41
42for pkg ; do
43  package=`echo ${pkg} | sed -e 's#^[^/]#/&#' -e 's#[^/]$#&/#'`
44  packages="${packages} ${package}"
45done
46
47shift $#
48
49#
50# Locate the Deployment package
51#
52curdir=$PWD
53cd `dirname $0`
54dep=$PWD
55
56#
57# Connect to the release
58#
59if [ -z ${skip} ] ; then
60
61cd ${HOME}/cmthome || exit
62if [ "${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
67elif [ "${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}`
71elif [ -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}`
75else
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`
80fi
81
82else
83  which cmt > /dev/null 2>&1 || { echo "CMT not setup" ; exit 1; }
84fi
85
86[ "${release}" ] || { echo "Select Atlas release, please" ; exit 1; }
87
88cmt_path_purge=`echo $CMTPATH | sed s/^:*//`
89cmt_path_0=`echo ${cmt_path_purge} | cut -d: -f1`
90
91if [ "${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}
97else
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" 
104fi
105
106if [ "${mode}" ]; then
107  mode_opt="-platform ${mode}"
108else
109  mode_opt=
110fi
111
112if [ "${PACMAN_CACHE}" ]; then 
113  if echo ${PACMAN_CACHE} | grep -vq ^/ ; then
114    PACMAN_CACHE=${curdir}/${PACMAN_CACHE}
115  fi
116else
117  PACMAN_CACHE=/tmp/${LOGNAME}/${release}
118  echo "Creating kit in ${PACMAN_CACHE}" 
119fi
120
121export PACMAN_CACHE
122mkdir -p ${PACMAN_CACHE}
123
124#
125# Select the top location from which the construction kit will be broadcast
126#
127cd ${devarea}/${mainpkg}/${mainpkg}*/cmt || exit
128
129#
130# Set up the release context
131#
132source setup.sh -no_cleanup
133
134#
135# Connect to the patch directory
136#
137patches=/afs/cern.ch/user/a/alibrari/Kit/patches
138patches_opt="-patches ${patches}"
139
140#
141# May need to construct the cycles file
142#
143if [ -r ${patches}/cycles_${release}.txt ] ; then
144  cycles_opt="-cycles ${patches}/cycles_${release}.txt"
145else
146  cmt -quiet show cycles >| ${PACMAN_CACHE}/cycles_${release}.txt
147  cycles_opt="-cycles ${PACMAN_CACHE}/cycles_${release}.txt"
148fi
149
150#
151# Run the construction kit
152#
153if [ -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}
156else
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}
159fi
160
161cd $curdir
162
Note: See TracBrowser for help on using the repository browser.