Annotation of /trunk/pkgtools/add2svn.sh
Parent Directory | Revision Log
Revision 1331 -
(hide annotations)
(download)
(as text)
Tue May 31 17:44:01 2011 UTC (13 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 7283 byte(s)
Tue May 31 17:44:01 2011 UTC (13 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 7283 byte(s)
-sync with current
1 | niro | 821 | #!/bin/bash |
2 | |||
3 | source /usr/lib/mage/mage4.functions.sh | ||
4 | |||
5 | SMAGEFILE="$1" | ||
6 | if [[ -z ${SMAGEFILE} ]] | ||
7 | then | ||
8 | echo "No smagefile given." | ||
9 | exit 1 | ||
10 | fi | ||
11 | [[ -n $2 ]] && [[ $2 != -st ]] && SVN_COMMIT="$2" | ||
12 | if [[ $3 = -st ]] || [[ $2 = -st ]] | ||
13 | then | ||
14 | echo "Using SRCTARBALL ..." | ||
15 | USE_SRCTARBALL=true | ||
16 | fi | ||
17 | |||
18 | #CURARCH=i686 | ||
19 | niro | 1331 | #CURARCH=x86_64 |
20 | niro | 821 | |
21 | niro | 1331 | if [[ -z ${CURARCH} ]] |
22 | then | ||
23 | echo "Environment variable \${CURARCH} not given. Aborted." | ||
24 | exit 1 | ||
25 | fi | ||
26 | niro | 821 | |
27 | niro | 1331 | BUILDROOT=/mnt/BUILDROOT-"${CURARCH}"-svn |
28 | |||
29 | niro | 821 | SMAGEDIR=$(dirname ${SMAGEFILE}) |
30 | MD5DIR=${SMAGEDIR}/md5 | ||
31 | MD5NAME=$(basename $1 .smage2).md5 | ||
32 | SMAGENAME=$(basename $1) | ||
33 | CURPNAME=$(magename2pname $1) | ||
34 | CURPVER=$(magename2pver $1) | ||
35 | CURPBUILD=$(magename2pbuild $(basename $1 .smage2)) | ||
36 | PKGNAME=${CURPNAME}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk | ||
37 | SRCPKGNAME=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks | ||
38 | REPO="$(echo ${SMAGEFILE#*trunk/} | cut -d'/' -f1)" | ||
39 | SSHLOGIN="tjoke@magellan-linux.de:/var/www/htdocs/magellan/magellan-dev/svn/unstable/packages" | ||
40 | SRCTARBALL_URI="http://magellan-linux.de/magellan/magellan-dev/svn/unstable/packages/src" | ||
41 | |||
42 | # abort if the package is already installed in BUILDROOT | ||
43 | get_value_from_file() | ||
44 | { | ||
45 | local var="$1" | ||
46 | local file="$2" | ||
47 | local value | ||
48 | |||
49 | # source /etc/mage.rc to get the includes right | ||
50 | source /etc/mage.rc.global | ||
51 | source /etc/mage.rc | ||
52 | |||
53 | # evaluate the value | ||
54 | source ${file} $> /dev/null | ||
55 | eval value=\$$(echo ${var}) | ||
56 | echo "${value}" | ||
57 | } | ||
58 | |||
59 | niro | 1331 | get_function_from_file() |
60 | { | ||
61 | local function="$1" | ||
62 | local file="$2" | ||
63 | |||
64 | # source /etc/mage.rc to get the includes right | ||
65 | source /etc/mage.rc.global | ||
66 | source /etc/mage.rc | ||
67 | |||
68 | # evaluate the value | ||
69 | source ${file} $> /dev/null | ||
70 | export -f ${function} | ||
71 | } | ||
72 | |||
73 | niro | 821 | CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE}) |
74 | INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc) | ||
75 | niro | 1331 | CURSPLITPACKAGES="$(get_value_from_file SPLIT_PACKAGES ${SMAGEFILE})" |
76 | niro | 821 | |
77 | niro | 1331 | if [[ -z ${CURSPLITPACKAGES} ]] |
78 | niro | 821 | then |
79 | niro | 1331 | if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]] |
80 | then | ||
81 | echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!" | ||
82 | exit 1 | ||
83 | fi | ||
84 | else | ||
85 | for i in ${CURSPLITPACKAGES} | ||
86 | do | ||
87 | if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${i}-${CURPVER}-${CURPBUILD} ]] | ||
88 | then | ||
89 | SPLITINSTALLED+=" ${CURPCATEGORIE}/${i}-${CURPVER}-${CURPBUILD}" | ||
90 | fi | ||
91 | done | ||
92 | if [[ ! -z ${SPLITINSTALLED} ]] | ||
93 | then | ||
94 | echo "Following SPLIT-Packages are installled from ${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} in ${BUILDROOT}:" | ||
95 | for i in ${SPLITINSTALLED} | ||
96 | do | ||
97 | echo " ${i}" | ||
98 | done | ||
99 | echo "Aborted." | ||
100 | exit 1 | ||
101 | fi | ||
102 | niro | 821 | fi |
103 | |||
104 | # delete md5 if exist | ||
105 | [[ -f ${MD5DIR}/${MD5NAME} ]] && rm ${MD5DIR}/${MD5NAME} | ||
106 | |||
107 | if [[ ${USE_SRCTARBALL} != true ]] | ||
108 | then | ||
109 | /sbin/smage2 download ${SMAGEFILE} | ||
110 | /sbin/smage2 calcmd5 ${SMAGEFILE} ${MD5DIR} | ||
111 | pushd ${SMAGEDIR}/../ | ||
112 | svn add ${CURPNAME} | ||
113 | pushd ${SMAGEDIR} | ||
114 | svn add md5 | ||
115 | svn add ${SMAGENAME} md5/${MD5NAME} | ||
116 | |||
117 | [[ -z ${SVN_COMMIT} ]] && SVN_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}" | ||
118 | niro | 1331 | svn commit -m "${SVN_COMMIT}" ../${CURPNAME} ${SMAGENAME} md5 md5/${MD5NAME} |
119 | niro | 821 | popd |
120 | fi | ||
121 | |||
122 | sudo -s << EOF | ||
123 | :> ${BUILDROOT}/.installrc | ||
124 | |||
125 | echo "export LC_ALL=C" >> ${BUILDROOT}/.installrc | ||
126 | niro | 1331 | # do not start any services, set mage bootstrap flag |
127 | echo "export MAGE_BOOTSTRAP=true" >> ${BUILDROOT}/.installrc | ||
128 | niro | 821 | echo "REPO=${REPO}" >> ${BUILDROOT}/.installrc |
129 | echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc | ||
130 | echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc | ||
131 | echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc | ||
132 | echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc | ||
133 | niro | 1331 | echo "CURSPLITPACKAGES=\"${CURSPLITPACKAGES}\"" >> ${BUILDROOT}/.installrc |
134 | niro | 821 | echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc |
135 | echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc | ||
136 | echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc | ||
137 | echo "SPKGNAME=${SPKGNAME}" >> ${BUILDROOT}/.installrc | ||
138 | echo '/usr/bin/whoami' >> ${BUILDROOT}/.installrc | ||
139 | echo 'source /etc/profile' >> ${BUILDROOT}/.installrc | ||
140 | #echo 'echo PATH=\${PATH};read' >> ${BUILDROOT}/.installrc | ||
141 | echo 'cd /var/cache/mage/smage/trunk/${REPO}' >> ${BUILDROOT}/.installrc | ||
142 | echo 'svn update include' >> ${BUILDROOT}/.installrc | ||
143 | echo 'svn update ${CURPNAME}' >> ${BUILDROOT}/.installrc | ||
144 | echo 'USE_SRCTARBALL=${USE_SRCTARBALL}' >> ${BUILDROOT}/.installrc | ||
145 | echo 'if [[ \${USE_SRCTARBALL} != true ]];then ' >> ${BUILDROOT}/.installrc | ||
146 | echo '/sbin/smage2 /var/cache/mage/smage/trunk/${REPO}/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc | ||
147 | echo 'else' >> ${BUILDROOT}/.installrc | ||
148 | echo 'echo "Fetching SRC_TARBALL"' >> ${BUILDROOT}/.installrc | ||
149 | echo 'pushd /var/tmp/magebuild > /dev/null' >> ${BUILDROOT}/.installrc | ||
150 | echo "SRCTARBALL=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks" >> ${BUILDROOT}/.installrc | ||
151 | echo "SRCTARBALL_URI=${SRCTARBALL_URI}" >> ${BUILDROOT}/.installrc | ||
152 | echo '/usr/bin/wget -c \${SRCTARBALL_URI}/\${SRCTARBALL}' >> ${BUILDROOT}/.installrc | ||
153 | echo '/sbin/smage2 -st \${SRCTARBALL}' >> ${BUILDROOT}/.installrc | ||
154 | echo '[[ -f \${SRCTARBALL} ]] && rm \${SRCTARBALL}' >> ${BUILDROOT}/.installrc | ||
155 | echo 'popd > /dev/null' >> ${BUILDROOT}/.installrc | ||
156 | echo 'fi' >> ${BUILDROOT}/.installrc | ||
157 | niro | 1331 | echo 'if [[ ! -z \${CURSPLITPACKAGES} ]]' >> ${BUILDROOT}/.installrc |
158 | echo 'then' >> ${BUILDROOT}/.installrc | ||
159 | echo 'for package in \${CURSPLITPACKAGES}' >> ${BUILDROOT}/.installrc | ||
160 | echo 'do' >> ${BUILDROOT}/.installrc | ||
161 | echo '/sbin/mage install \${package} || exit 1' >> ${BUILDROOT}/.installrc | ||
162 | echo 'mv /var/cache/mage/packages/\${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk /BUILDED' >> ${BUILDROOT}/.installrc | ||
163 | echo 'done' >> ${BUILDROOT}/.installrc | ||
164 | echo 'else' >> ${BUILDROOT}/.installrc | ||
165 | echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc | ||
166 | echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc | ||
167 | echo 'fi' >> ${BUILDROOT}/.installrc | ||
168 | niro | 821 | echo 'mv /var/cache/mage/packages/sources/${SRCPKGNAME} /BUILDED/sources' >> ${BUILDROOT}/.installrc |
169 | echo 'rm -rf /var/cache/mage/sources/${CURPNAME}' >> ${BUILDROOT}/.installrc | ||
170 | EOF | ||
171 | |||
172 | sudo -H /sbin/chroot ${BUILDROOT} /bin/bash /.installrc | ||
173 | sudo rm ${BUILDROOT}/.installrc | ||
174 | |||
175 | niro | 1331 | if [[ ! -z ${CURSPLITPACKAGES} ]] |
176 | niro | 821 | then |
177 | niro | 1331 | for package in ${CURSPLITPACKAGES} |
178 | do | ||
179 | # get pkgtyp | ||
180 | get_function_from_file split_info_${package} ${SMAGEFILE} | ||
181 | split_info_${package} | ||
182 | if [[ ${PKGTYPE} = virtual ]] | ||
183 | then | ||
184 | unset PKGTYPE | ||
185 | continue | ||
186 | fi | ||
187 | if [[ ${NOPKGBUILD} = true ]] | ||
188 | then | ||
189 | unset NOPKGBUILD | ||
190 | continue | ||
191 | fi | ||
192 | |||
193 | pkgname="${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk" | ||
194 | |||
195 | if [[ -f ${BUILDROOT}/BUILDED/${pkgname} ]] | ||
196 | then | ||
197 | scp ${BUILDROOT}/BUILDED/${pkgname} ${SSHLOGIN}/${CURARCH}/ | ||
198 | else | ||
199 | echo "Error: ${BUILDROOT}/BUILDED/${pkgname} missing!" | ||
200 | exit 1 | ||
201 | fi | ||
202 | done | ||
203 | niro | 821 | else |
204 | niro | 1331 | if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]] |
205 | then | ||
206 | scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/ | ||
207 | else | ||
208 | echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!" | ||
209 | exit 1 | ||
210 | fi | ||
211 | niro | 821 | fi |
212 | |||
213 | if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]] | ||
214 | then | ||
215 | scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/ | ||
216 | else | ||
217 | echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!" | ||
218 | niro | 1331 | # exit 1 |
219 | niro | 821 | fi |
220 | |||
221 | [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME} | ||
222 | |||
223 | |||
224 | niro | 1331 | # if we don't break before; all things are right - regardless if $? is not zero |
225 | # because some things like src-pkg creation may be disabled | ||
226 | exit 0 | ||
227 |
Properties
Name | Value |
---|---|
svn:executable | * |
svn:keywords | Id |