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

Last change on this file since 689 was 53, checked in by arnault, 20 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.