4 # This script builds a delivery
8 # $2: build type (dev, rel)
9 # $3: SVN location (trunk, tags, branches)
11 # $5: delivery version
12 # $6: branch identifier
15 # Environment variable that MUST be defined
16 # by the calling script
18 # SVN_URL SVN_USER SVN_PASS
23 . `dirname $0`/functions
28 BIN_BASENAME="/bin/basename"
29 BIN_CHMOD="/bin/chmod"
31 BIN_MKDIR="/bin/mkdir"
33 BIN_SVN="/usr/bin/svn"
56 $BIN_ECHO "Preparing to build delivery '$4'"
57 if [ $EXIT -eq 0 ] ; then
60 $BIN_ECHO "-> Target directory parameter is missing"
66 $BIN_ECHO "-> Target directory '$1' does not exist"
71 $BIN_ECHO "-> Build type is missing (dev or rel)"
74 if [ "$2" != "dev" -a "$2" != "rel" ] ; then
75 $BIN_ECHO "-> Build type '$2' is not supported (dev or rel)"
82 $BIN_ECHO "-> SVN location parameter is missing (trunk, tags or branches)"
85 if [ "$3" != "trunk" -a "$3" != "tags" -a "$3" != "branches" ] ; then
86 $BIN_ECHO "-> SVN location '$3' is not supported (trunk, tags or branches)"
93 $BIN_ECHO "-> SVN delivery parameter is missing"
99 if [ "$SVN_LOCATION" = "tags" -o "$SVN_LOCATION" = "branches" ] ; then
100 $BIN_ECHO "-> SVN version parameter is missing"
106 if [ -z "$6" ] ; then
107 if [ "$SVN_LOCATION" = "branches" ] ; then
108 $BIN_ECHO "-> SVN branch parameter is missing"
114 if [ ! -x $BIN_SVN ] ; then
115 $BIN_ECHO "-> Binary '$BIN_SVN' is missing"
119 if [ $EXIT -eq 0 ] ; then
120 case "$SVN_LOCATION" in
122 SVN_PATH_PACKAGE="trunk/delivery/$SVN_DELIVERY/package"
125 SVN_PATH_PACKAGE="tags/delivery/$SVN_DELIVERY/$SVN_VERSION/package"
128 SVN_PATH_PACKAGE="branches/delivery/$SVN_DELIVERY/$SVN_VERSION-$SVN_BRANCH/package"
131 $BIN_ECHO "-> SVN location '$SVN_LOCATION' is not supported"
135 if [ $EXIT -eq 0 ] ; then
136 TMP_DIR="$TARGET_DIR/`$BIN_BASENAME $0`"
137 if [ -d $TMP_DIR ] ; then
138 $BIN_ECHO "-> Directory '$TMP_DIR' already exists"
141 $BIN_MKDIR -p $TMP_DIR/package
142 if [ ! -d $TMP_DIR/package ] ; then
143 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/package'"
148 if [ $EXIT -eq 0 ] ; then
149 pushd $TMP_DIR/package >> /dev/null 2>&1
150 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/$SVN_PATH_PACKAGE . >> /dev/null 2>&1
151 if [ $? -ne 0 ] ; then
152 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/$SVN_PATH_PACKAGE'"
155 popd >> /dev/null 2>&1
157 if [ $EXIT -eq 0 ] ; then
158 if [ ! -e $TMP_DIR/package/config ] ; then
159 $BIN_ECHO "-> The package configuration file '$TMP_DIR/package/config' is missing"
163 if [ $EXIT -eq 0 ] ; then
164 . $TMP_DIR/package/config
165 if [ -z "$VERSION" ] ; then
169 if [ $EXIT -eq 0 ] ; then
170 $BIN_MKDIR -p $TMP_DIR/packaging
171 if [ ! -d $TMP_DIR/packaging ] ; then
172 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/packaging'"
176 if [ $EXIT -eq 0 ] ; then
177 pushd $TMP_DIR/packaging >> /dev/null 2>&1
178 case "$SVN_LOCATION" in
180 SVN_PATH_DELIVERY="trunk/packaging/delivery"
183 SVN_PATH_DELIVERY="$SVN_LOCATION/packaging/$VERSION/delivery"
186 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/$SVN_PATH_DELIVERY . >> /dev/null 2>&1
187 if [ $? -ne 0 ] ; then
188 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/$SVN_PATH_DELIVERY'"
191 popd >> /dev/null 2>&1
193 if [ $EXIT -eq 0 ] ; then
194 if [ ! -e $TMP_DIR/packaging/build ] ; then
195 $BIN_ECHO "-> File '$TMP_DIR/packaging/build' is missing"
199 if [ $EXIT -eq 0 ] ; then
201 $BIN_CHMOD 755 $TMP_DIR/packaging/build
202 $TMP_DIR/packaging/build "$TARGET_DIR" "$BUILD_TYPE" "$SVN_LOCATION" "$SVN_DELIVERY" "$SVN_VERSION" "$SVN_BRANCH"
203 if [ $? -ne 0 ] ; then
207 if [ -n "$TMP_DIR" -a "$TMP_DIR" != "/" ] ; then