1818
1919function usage() {
2020 echo " "
21- echo " usage: ./package.sh [-p |--pack] [-h |--help ] [ARGS ]"
21+ echo " usage: ./package.sh [-h |--help] -d|--distribution <name> [-r |--release <version> ] [-p|--pack oss|OSS|noredist|NOREDIST] [-s|--simulator default|DEFAULT|simulator|SIMULATOR ]"
2222 echo " "
23- echo " The commonly used Arguments are:"
24- echo " -p|--pack oss|OSS To package with only redistributable libraries (default)"
25- echo " -p|--pack noredist|NOREDIST To package with non-redistributable libraries"
26- echo " -d centos7|centos63|fedora20|fedora21 To build a package for a distribution"
27- echo " -s simulator|SIMULATOR To build for Simulator"
23+ echo " The supported arguments are:"
24+ echo " To package with only redistributable libraries (default)"
25+ echo " -p|--pack oss|OSS"
26+ echo " To package with non-redistributable libraries"
27+ echo " -p|--pack noredist|NOREDIST"
28+ echo " To build a package for a distribution (mandatory)"
29+ echo " -d|--distribution centos7|centos63|fedora20|fedora21"
30+ echo " To set the package release version (optional)"
31+ echo " (default is 1 for normal and prereleases, empty for SNAPSHOT)"
32+ echo " -r|--release version(integer)"
33+ echo " To build for Simulator (optional)"
34+ echo " -s|--simulator default|DEFAULT|simulator|SIMULATOR"
35+ echo " To display this information"
36+ echo " -h|--help"
2837 echo " "
29- echo " Examples: ./package.sh -p|--pack oss|OSS"
30- echo " ./package.sh -p|--pack noredist|NOREDIST"
31- echo " ./package.sh (Default OSS)"
32- exit 1
38+ echo " Examples: ./package.sh --pack oss"
39+ echo " ./package.sh --pack noredist"
40+ echo " ./package.sh --pack oss --distribution centos7 --release 42"
41+ echo " ./package.sh --distribution centos7 --release 42"
42+ echo " ./package.sh --distribution centos7"
3343}
3444
3545# packaging
3646# $1 redist flag
3747# $2 simulator flag
3848# $3 distribution name
49+ # $4 package release version
3950function packaging() {
40- CWD=` pwd`
51+ CWD=$( pwd)
4152 RPMDIR=$CWD /../dist/rpmbuild
4253 PACK_PROJECT=cloudstack
4354 if [ -n " $1 " ] ; then
@@ -48,116 +59,127 @@ function packaging() {
4859 fi
4960
5061 DISTRO=$3
51- MVN=` which mvn`
62+ MVN=$( which mvn)
5263 if [ -z " $MVN " ] ; then
53- MVN=` locate bin/mvn | grep -e mvn$ | tail -1`
64+ MVN=$( locate bin/mvn | grep -e mvn$ | tail -1)
5465 if [ -z " $MVN " ] ; then
55- echo " mvn not found\n cannot retrieve version to package\n RPM Build Failed"
66+ echo -e " mvn not found\n cannot retrieve version to package\n RPM Build Failed"
5667 exit 2
5768 fi
5869 fi
59- VERSION=` (cd ../; $MVN org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version) | grep --color=none ' ^[0-9]\.' `
60- if echo $VERSION | grep -q SNAPSHOT ; then
61- REALVER=` echo $VERSION | cut -d ' -' -f 1`
62- DEFVER=" -D_ver $REALVER "
63- DEFPRE=" -D_prerelease 1"
64- DEFREL=" -D_rel SNAPSHOT"
70+ VERSION=$( cd ../; $MVN org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep --color=none ' ^[0-9]\.' )
71+ if echo " $VERSION " | grep -q SNAPSHOT ; then
72+ REALVER=$( echo " $VERSION " | cut -d ' -' -f 1)
73+ if [ -n " $4 " ] ; then
74+ DEFPRE=" -D_prerelease $4 "
75+ DEFREL=" -D_rel SNAPSHOT$4 "
76+ else
77+ DEFPRE=" -D_prerelease 1"
78+ DEFREL=" -D_rel SNAPSHOT"
79+ fi
6580 else
66- REALVER=` echo $VERSION `
67- DEFVER=" -D_ver $REALVER "
68- DEFREL=" -D_rel 1"
81+ REALVER=" $VERSION "
82+ if [ -n " $4 " ] ; then
83+ DEFREL=" -D_rel $4 "
84+ else
85+ DEFREL=" -D_rel 1"
86+ fi
6987 fi
88+ DEFVER=" -D_ver $REALVER "
7089
71- echo Preparing to package Apache CloudStack ${ VERSION}
90+ echo " Preparing to package Apache CloudStack $VERSION "
7291
73- mkdir -p $RPMDIR /SPECS
74- mkdir -p $RPMDIR /BUILD
75- mkdir -p $RPMDIR /RPMS
76- mkdir -p $RPMDIR /SRPMS
77- mkdir -p $RPMDIR /SOURCES/$PACK_PROJECT -$VERSION
92+ mkdir -p " $RPMDIR /SPECS"
93+ mkdir -p " $RPMDIR /BUILD"
94+ mkdir -p " $RPMDIR /RPMS"
95+ mkdir -p " $RPMDIR /SRPMS"
96+ mkdir -p " $RPMDIR /SOURCES/$PACK_PROJECT -$VERSION "
7897
7998 echo " . preparing source tarball"
80- (cd ../; tar -c --exclude .git --exclude dist . | tar -C $RPMDIR /SOURCES/$PACK_PROJECT -$VERSION -x )
81- (cd $RPMDIR /SOURCES/; tar -czf $PACK_PROJECT -$VERSION .tgz $PACK_PROJECT -$VERSION )
99+ (cd ../; tar -c --exclude .git --exclude dist . | tar -C " $RPMDIR /SOURCES/$PACK_PROJECT -$VERSION " -x )
100+ (cd " $RPMDIR /SOURCES/" ; tar -czf " $PACK_PROJECT -$VERSION .tgz" " $PACK_PROJECT -$VERSION " )
82101
83102 echo " . executing rpmbuild"
84- cp $DISTRO /cloud.spec $RPMDIR /SPECS
85-
86- (cd $RPMDIR ; rpmbuild --define " _topdir $RPMDIR " " ${DEFVER} " " ${DEFREL} " ${DEFPRE+" ${DEFPRE} " } ${DEFOSSNOSS+" $DEFOSSNOSS " } ${DEFSIM+" $DEFSIM " } -bb SPECS/cloud.spec)
103+ cp " $DISTRO /cloud.spec" " $RPMDIR /SPECS"
87104
105+ (cd " $RPMDIR " ; rpmbuild --define " _topdir ${RPMDIR} " " ${DEFVER} " " ${DEFREL} " ${DEFPRE+" $DEFPRE " } ${DEFOSSNOSS+$DEFOSSNOSS } ${DEFSIM+" $DEFSIM " } -bb SPECS/cloud.spec)
88106 if [ $? -ne 0 ]; then
89107 echo " RPM Build Failed "
90- exit 1
108+ exit 3
91109 else
92110 echo " RPM Build Done"
93111 fi
94112 exit
95-
96113}
97114
98-
99115TARGETDISTRO=" "
100- sim=" "
101- packageval=" "
116+ SIM=" "
117+ PACKAGEVAL=" "
118+ RELEASE=" "
102119
103- SHORTOPTS=" hp:d :"
104- LONGOPTS=" help,pack:, simulator:distribution"
105- ARGS=$( getopt -s bash -u -a --options $SHORTOPTS --longoptions $LONGOPTS --name $0 -- " $@ " )
106- eval set -- " $ARGS "
107- echo " $ARGS "
108- while [ $# -gt 0 ] ; do
109- case " $1 " in
110- -h | --help)
120+ SHORTOPTS=" hp:s:d:r :"
121+ LONGOPTS=" help,pack:simulator:distribution:release: "
122+ ARGS=$( getopt -s bash -u -a --options " $SHORTOPTS " --longoptions " $LONGOPTS " --name " $0 " -- " $@ " )
123+ eval set -- " $ARGS "
124+ echo " $ARGS "
125+ while [ $# -gt 0 ] ; do
126+ case " $1 " in
127+ -h | --help)
111128 usage
112129 exit 0
113130 ;;
114131 -p | --pack)
115- echo " Doing CloudStack Packaging .. ..."
116- packageval =$2
117- echo " $packageval "
118- if [ " $packageval " == " oss" -o " $packageval " == " OSS" ] ; then
119- packageval =" "
120- elif [ " $packageval " == " noredist" -o " $packageval " == " NOREDIST" ] ; then
121- packageval =" noredist"
132+ echo " Packaging CloudStack ..."
133+ PACKAGEVAL =$2
134+ echo " $PACKAGEVAL "
135+ if [ " $PACKAGEVAL " == " oss" -o " $PACKAGEVAL " == " OSS" ] ; then
136+ PACKAGEVAL =" "
137+ elif [ " $PACKAGEVAL " == " noredist" -o " $PACKAGEVAL " == " NOREDIST" ] ; then
138+ PACKAGEVAL =" noredist"
122139 else
123- echo " Error: Incorrect value provided in package.sh script, Please see help ./package.sh --help|-h for more details."
140+ echo " Error: Unsupported value for --pack"
141+ usage
124142 exit 1
125143 fi
126144 shift
127145 ;;
128146 -s | --simulator)
129- sim =$2
130- echo " $sim "
131- if [ " $sim " == " default" -o " $sim " == " DEFAULT" ] ; then
132- sim = " false"
133- elif [ " $sim " == " simulator" -o " $sim " == " SIMULATOR" ] ; then
134- sim =" simulator"
147+ SIM =$2
148+ echo " $SIM "
149+ if [ " $SIM " == " default" -o " $SIM " == " DEFAULT" ] ; then
150+ SIM= " false"
151+ elif [ " $SIM " == " simulator" -o " $SIM " == " SIMULATOR" ] ; then
152+ SIM =" simulator"
135153 else
136- echo " Error: Incorrect value provided in package.sh script for -o, Please see help ./package.sh --help|-h for more details."
137- exit 1
154+ echo " Error: Unsupported value for --simulator"
155+ usage
156+ exit 1
138157 fi
139158 shift
140159 ;;
141160 -d | --distribution)
142161 TARGETDISTRO=$2
162+ if [ -z " $TARGETDISTRO " ] ; then
163+ echo " Error: Missing target distribution"
164+ usage
165+ exit 1
166+ fi
167+ shift
168+ ;;
169+ -r | --release)
170+ RELEASE=$2
143171 shift
144172 ;;
145173 -)
146- echo " Unrecognized option... "
174+ echo " Error: Unrecognized option"
147175 usage
148176 exit 1
149177 ;;
150178 * )
151179 shift
152180 ;;
153- esac
154- done
181+ esac
182+ done
155183
156- if [ -z " $TARGETDISTRO " ]
157- then
158- echo " Missing target distribution"
159- usage
160- exit 1
161- fi
184+ packaging " $PACKAGEVAL " " $SIM " " $TARGETDISTRO " " $RELEASE "
162185
163- packaging " $packageval " " $sim " " $TARGETDISTRO "
0 commit comments