4 # This script builds a component
7 # $1: target distribution
9 # $3: SVN location (trunk, tags, branches)
13 # $7: branch identifier
16 # Environment variable that MUST be defined
17 # by the calling script
19 # SVN_URL SVN_USER SVN_PASS
24 . `dirname $0`/functions
30 BIN_CHMOD="/bin/chmod"
32 BIN_MKDIR="/bin/mkdir"
34 BIN_SVN="/usr/bin/svn"
59 $BIN_ECHO "Preparing to build component '$4'"
60 if [ $EXIT -eq 0 ] ; then
64 BIN_BASENAME="/bin/basename"
68 BIN_BASENAME="/usr/bin/basename"
72 $BIN_ECHO "-> target distribution '$1' is not supported (rpm or deb are supported)"
75 if [ ! -x $BIN_BASENAME ] ; then
76 $BIN_ECHO "-> Binary '$BIN_BASENAME' is missing"
80 $BIN_ECHO "-> Target directory parameter is missing"
86 $BIN_ECHO "-> Target directory '$2' does not exist"
91 $BIN_ECHO "-> SVN location parameter is missing (trunk, tags or branches)"
94 if [ "$3" != "trunk" -a "$3" != "tags" -a "$3" != "branches" ] ; then
95 $BIN_ECHO "-> SVN location '$3' is not supported (trunk, tags or branches)"
101 if [ -z "$4" ] ; then
102 $BIN_ECHO "-> SVN component parameter is missing"
107 if [ -z "$5" ] ; then
108 if [ "$SVN_LOCATION" = "tags" -o "$SVN_LOCATION" = "branches" ] ; then
109 $BIN_ECHO "-> SVN version parameter is missing"
115 if [ -z "$6" ] ; then
116 if [ "$SVN_LOCATION" = "tags" -o "$SVN_LOCATION" = "branches" ] ; then
117 $BIN_ECHO "-> SVN release parameter is missing"
123 if [ -z "$7" ] ; then
124 if [ "$SVN_LOCATION" = "branches" ] ; then
125 $BIN_ECHO "-> SVN branch parameter is missing"
131 if [ ! -x $BIN_SVN ] ; then
132 $BIN_ECHO "-> Binary '$BIN_SVN' is missing"
136 if [ $EXIT -eq 0 ] ; then
137 case "$SVN_LOCATION" in
139 SVN_PATH_PACKAGE="trunk/component/$SVN_COMPONENT/package"
142 SVN_PATH_PACKAGE="tags/component/$SVN_COMPONENT/package/$SVN_VERSION-$SVN_RELEASE"
145 SVN_PATH_PACKAGE="branches/component/$SVN_COMPONENT/package/$SVN_VERSION-$SVN_RELEASE-$SVN_BRANCH"
148 $BIN_ECHO "-> SVN location '$SVN_LOCATION' is not supported"
152 if [ $EXIT -eq 0 ] ; then
153 TMP_DIR="$TARGET_DIR/`$BIN_BASENAME $0`"
154 if [ -d $TMP_DIR ] ; then
155 $BIN_ECHO "-> Directory '$TMP_DIR' already exists"
158 $BIN_MKDIR -p $TMP_DIR/package
159 if [ ! -d $TMP_DIR/package ] ; then
160 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/package'"
165 if [ $EXIT -eq 0 ] ; then
166 pushd $TMP_DIR/package >> /dev/null 2>&1
167 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/$SVN_PATH_PACKAGE . >> /dev/null 2>&1
168 if [ $? -ne 0 ] ; then
169 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/$SVN_PATH_PACKAGE'"
172 popd >> /dev/null 2>&1
174 if [ $EXIT -eq 0 ] ; then
175 if [ ! -e $TMP_DIR/package/config ] ; then
176 $BIN_ECHO "-> The package configuration file '$TMP_DIR/package/config' is missing"
180 if [ $EXIT -eq 0 ] ; then
181 . $TMP_DIR/package/config
182 if [ -z "$VERSION" ] ; then
186 if [ $EXIT -eq 0 ] ; then
187 $BIN_MKDIR -p $TMP_DIR/packaging
188 if [ ! -d $TMP_DIR/packaging ] ; then
189 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/packaging'"
193 if [ $EXIT -eq 0 ] ; then
194 pushd $TMP_DIR/packaging >> /dev/null 2>&1
195 #$BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/tags/packaging/$VERSION/component . >> /dev/null 2>&1
196 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/trunk/packaging/component . >> /dev/null 2>&1
197 if [ $? -ne 0 ] ; then
198 #$BIN_ECHO "-> Error while checkouting URL '$SVN_URL/tags/packaging/$VERSION/component'"
199 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/trunk/packaging/component'"
202 popd >> /dev/null 2>&1
204 if [ $EXIT -eq 0 ] ; then
205 if [ ! -e $TMP_DIR/packaging/$BIN_BUILD ] ; then
206 $BIN_ECHO "-> File '$TMP_DIR/packaging/build' is missing"
210 if [ $EXIT -eq 0 ] ; then
212 $BIN_CHMOD 755 $TMP_DIR/packaging/$BIN_BUILD
213 $TMP_DIR/packaging/$BIN_BUILD "$TARGET_DIR" "$SVN_LOCATION" "$SVN_COMPONENT" "$SVN_VERSION" "$SVN_RELEASE" "$SVN_BRANCH"
214 if [ $? -ne 0 ] ; then
218 if [ -n "$TMP_DIR" -a "$TMP_DIR" != "/" ] ; then