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 don't have to be defined anymore
17 # default values are set if not
18 # by the calling script
20 # SVN_URL SVN_USER SVN_PASS
21 # Set vars to get from anonymous svn as a default
22 SVN_URL=${SVN_URL:-svn://scm.fusionforge.org/fusionforge}
23 SVN_USER=${SVN_USER:-nouser}
24 SVN_PASS=${SVN_PASS:-nopass}
25 echo "SVN_URL=$SVN_URL"
26 echo "SVN_USER=$SVN_USER"
27 echo "SVN_PASS=$SVN_PASS"
32 . `dirname $0`/functions
38 BIN_CHMOD="/bin/chmod"
40 BIN_MKDIR="/bin/mkdir"
42 BIN_SVN="/usr/bin/svn"
67 $BIN_ECHO "Preparing to build component '$4'"
68 if [ $EXIT -eq 0 ] ; then
72 BIN_BASENAME="/bin/basename"
76 BIN_BASENAME="/usr/bin/basename"
80 $BIN_ECHO "-> target distribution '$1' is not supported (rpm or deb are supported)"
83 if [ ! -x $BIN_BASENAME ] ; then
84 $BIN_ECHO "-> Binary '$BIN_BASENAME' is missing"
88 $BIN_ECHO "-> Target directory parameter is missing"
94 $BIN_ECHO "-> Target directory '$2' does not exist"
99 $BIN_ECHO "-> SVN location parameter is missing (trunk, tags or branches)"
102 if [ "$3" != "trunk" -a "$3" != "tags" -a "$3" != "branches" ] ; then
103 $BIN_ECHO "-> SVN location '$3' is not supported (trunk, tags or branches)"
109 if [ -z "$4" ] ; then
110 $BIN_ECHO "-> SVN component parameter is missing"
115 if [ -z "$5" ] ; then
116 if [ "$SVN_LOCATION" = "tags" -o "$SVN_LOCATION" = "branches" ] ; then
117 $BIN_ECHO "-> SVN version parameter is missing"
123 if [ -z "$6" ] ; then
124 if [ "$SVN_LOCATION" = "tags" -o "$SVN_LOCATION" = "branches" ] ; then
125 $BIN_ECHO "-> SVN release parameter is missing"
131 if [ -z "$7" ] ; then
132 if [ "$SVN_LOCATION" = "branches" ] ; then
133 $BIN_ECHO "-> SVN branch parameter is missing"
139 if [ ! -x $BIN_SVN ] ; then
140 $BIN_ECHO "-> Binary '$BIN_SVN' is missing"
144 if [ $EXIT -eq 0 ] ; then
145 case "$SVN_LOCATION" in
147 SVN_PATH_PACKAGE="trunk/component/$SVN_COMPONENT/package"
150 SVN_PATH_PACKAGE="tags/component/$SVN_COMPONENT/package/$SVN_VERSION-$SVN_RELEASE"
153 SVN_PATH_PACKAGE="branches/component/$SVN_COMPONENT/package/$SVN_VERSION-$SVN_RELEASE-$SVN_BRANCH"
156 $BIN_ECHO "-> SVN location '$SVN_LOCATION' is not supported"
160 if [ $EXIT -eq 0 ] ; then
161 TMP_DIR="$TARGET_DIR/`$BIN_BASENAME $0`"
162 if [ -d $TMP_DIR ] ; then
163 $BIN_ECHO "-> Directory '$TMP_DIR' already exists"
166 $BIN_MKDIR -p $TMP_DIR/package
167 if [ ! -d $TMP_DIR/package ] ; then
168 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/package'"
173 if [ $EXIT -eq 0 ] ; then
174 pushd $TMP_DIR/package >> /dev/null 2>&1
175 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/$SVN_PATH_PACKAGE . >> /dev/null 2>&1
176 if [ $? -ne 0 ] ; then
177 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/$SVN_PATH_PACKAGE'"
180 popd >> /dev/null 2>&1
182 if [ $EXIT -eq 0 ] ; then
183 if [ ! -e $TMP_DIR/package/config ] ; then
184 $BIN_ECHO "-> The package configuration file '$TMP_DIR/package/config' is missing"
188 if [ $EXIT -eq 0 ] ; then
189 . $TMP_DIR/package/config
190 if [ -z "$VERSION" ] ; then
194 if [ $EXIT -eq 0 ] ; then
195 $BIN_MKDIR -p $TMP_DIR/packaging
196 if [ ! -d $TMP_DIR/packaging ] ; then
197 $BIN_ECHO "-> Error while creating directory '$TMP_DIR/packaging'"
201 if [ $EXIT -eq 0 ] ; then
202 pushd $TMP_DIR/packaging >> /dev/null 2>&1
203 #$BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/tags/packaging/$VERSION/component . >> /dev/null 2>&1
204 $BIN_SVN checkout --username $SVN_USER --password $SVN_PASS $SVN_URL/trunk/packaging/component . >> /dev/null 2>&1
205 if [ $? -ne 0 ] ; then
206 #$BIN_ECHO "-> Error while checkouting URL '$SVN_URL/tags/packaging/$VERSION/component'"
207 $BIN_ECHO "-> Error while checkouting URL '$SVN_URL/trunk/packaging/component'"
210 popd >> /dev/null 2>&1
212 if [ $EXIT -eq 0 ] ; then
213 if [ ! -e $TMP_DIR/packaging/$BIN_BUILD ] ; then
214 $BIN_ECHO "-> File '$TMP_DIR/packaging/build' is missing"
218 if [ $EXIT -eq 0 ] ; then
220 $BIN_CHMOD 755 $TMP_DIR/packaging/$BIN_BUILD
221 $TMP_DIR/packaging/$BIN_BUILD "$TARGET_DIR" "$SVN_LOCATION" "$SVN_COMPONENT" "$SVN_VERSION" "$SVN_RELEASE" "$SVN_BRANCH"
222 if [ $? -ne 0 ] ; then
226 if [ -n "$TMP_DIR" -a "$TMP_DIR" != "/" ] ; then