summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-04-26 15:25:19 (UTC)
committer kergoth <kergoth>2003-04-26 15:25:19 (UTC)
commitdd4f6b36681a28f785cf0923b0f9fc58ebe9a3bf (patch) (unidiff)
tree667849b9c8bace1c558b4c9af668a5ab5a177ab9
parent908a099ba19192dcb341959125efce6cf0df20f1 (diff)
downloadopie-dd4f6b36681a28f785cf0923b0f9fc58ebe9a3bf.zip
opie-dd4f6b36681a28f785cf0923b0f9fc58ebe9a3bf.tar.gz
opie-dd4f6b36681a28f785cf0923b0f9fc58ebe9a3bf.tar.bz2
Countless improvements to the ipk creation script
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/mkipkg104
1 files changed, 58 insertions, 46 deletions
diff --git a/scripts/mkipkg b/scripts/mkipkg
index 54651af..7877078 100755
--- a/scripts/mkipkg
+++ b/scripts/mkipkg
@@ -143,10 +143,11 @@ findFile()
143 local path= 143 local path=
144 if [ $# = 1 ]; then 144 if [ $# = 1 ]; then
145 find $1 -type f -o -type b -o -type c -o -type l -o -type d 145 find $1 -type f -o -type b -o -type c -o -type l
146 find $1 -type d -a -empty
146 else 147 else
147 find . -type f -o -type b -o -type c -o -type l -o -type d | \ 148 find . -type f -o -type b -o -type c -o -type l | \
148 sed -e "s,\./\(.*\),\\1,g" 149 sed -e "s,\./\(.*\),\\1,g"
150 find . -type d -a -empty
149 fi 151 fi
150
151} 152}
152 153
@@ -165,11 +166,7 @@ expandMaskToList()
165 for f in $_list; do 166 for f in $_list; do
166 if [ -d $f ]; then 167 if [ -d $f ]; then
167 find="`findFile $f`" 168 f="`findFile $f`"
168 if [ -z "$find" ]; then
169 find="$f"
170 fi
171 f="$f `findFile $f`"
172 fi 169 fi
173 _tmpFileList=$f" $_tmpFileList" 170 _tmpFileList="`eval echo $f` $_tmpFileList"
174 done 171 done
175 setVar $2 "$_tmpFileList" 172 setVar $2 "$_tmpFileList"
@@ -180,4 +177,7 @@ createFileList()
180 local excludeMask 177 local excludeMask
181 local includeMask 178 local includeMask
179 local includemaskpresent=0
180 local excludemaskpresent=0
181
182 if (cat $1|grep -q ^FileExcludeMask); then 182 if (cat $1|grep -q ^FileExcludeMask); then
183 excludemaskpresent=1 183 excludemaskpresent=1
@@ -194,23 +194,24 @@ createFileList()
194 fi 194 fi
195 195
196 excludeMask="$excludeMask CONTROL/* usr/share/* CVS/* SCCS/*" 196 _pushd $destdir
197
198 excludeMask="$excludeMask CONTROL/* usr/share/*"
197 199
198 if [ $includemaskpresent == 1 ]; then 200 if [ $includemaskpresent != 1 ]; then
199 if [ -z "$includeMask" ]; then 201 includeMask="."
200 setVar $2 "" 202 fi
201 return 0 203
202 fi 204 if [ -z "$includeMask" ]; then
203 _pushd $destdir 205 setVar $2 ""
204 expandMaskToList "$includeMask" _fileList 206 _popd
205 _popd 207 return 0
206 else
207 _fileList=`cd $destdir && findFile`
208 fi 208 fi
209 209
210 expandMaskToList "$includeMask" _fileList
211
210 _excludeList= 212 _excludeList=
211 if [ -n "$excludeMask" ]; then 213 if [ -n "$excludeMask" ]; then
212 _pushd $destdir
213 expandMaskToList "$excludeMask" _excludeList 214 expandMaskToList "$excludeMask" _excludeList
214 _popd 215 _excludeList="$_excludeList `find -name \*CVS\* -o -name \*SCCS\*`"
215 fi 216 fi
216 217
@@ -225,6 +226,6 @@ createFileList()
225 done 226 done
226 if [ $containedInList = 0 ]; then 227 if [ $containedInList = 0 ]; then
227 if [ ! -e $file ]; then 228 if ! [ -e $file -o -L $file ]; then
228# echo "$self: $file not found" 229 echo "$self: $file not found"
229 missing=1 230 missing=1
230 fi 231 fi
@@ -233,4 +234,6 @@ createFileList()
233 done 234 done
234 235
236 _popd
237
235 if [ $missing = 1 ]; then 238 if [ $missing = 1 ]; then
236 return 1 239 return 1
@@ -253,9 +256,12 @@ substFile()
253 if [ ! -e $2 ]; then return 1; fi 256 if [ ! -e $2 ]; then return 1; fi
254 257
255 if [ -e $oldfile ]; then 258 if [ -e $oldfile -o -L $oldfile ]; then
256 newfile=./`echo $1|sed -f $2|sed -e's,^/,,g'` 259 newfile=`echo $oldfile|sed -f $2|sed -e's,^/,,g'`
257 olddir=./`dirname $1` 260 olddir=`dirname $oldfile`
261 base=`basename $oldfile`
258 newdir=`dirname $newfile` 262 newdir=`dirname $newfile`
259 263
264# echo >&2 moving $oldfile to $newfile
265
260 if [ "$newdir" = "$olddir" ]; then 266 if [ "$newdir" = "$olddir" ]; then
261 return 0 267 return 0
@@ -263,5 +269,5 @@ substFile()
263 269
264 mkdir -p $newdir 270 mkdir -p $newdir
265 mv $1 $newfile 271 mv $olddir/$base $newfile
266 rmdir -p $olddir 2>/dev/null 272 rmdir -p $olddir 2>/dev/null
267 fi 273 fi
@@ -271,5 +277,5 @@ stripFiles()
271{ 277{
272 for f in $1; do 278 for f in $1; do
273 stripFile $f 279 stripFile ./$f
274 done 280 done
275} 281}
@@ -278,5 +284,5 @@ substFiles()
278{ 284{
279 for f in $1; do 285 for f in $1; do
280 substFile $f 286 substFile ./$f
281 done 287 done
282} 288}
@@ -285,6 +291,6 @@ substAndStripFiles()
285{ 291{
286 for f in $1; do 292 for f in $1; do
287 stripFile $f 293 stripFile ./$f
288 substFile $f $2 294 substFile ./$f $2
289 done 295 done
290} 296}
@@ -294,4 +300,6 @@ installScript()
294 if [ -n "$1" -a -f "$1" ]; then 300 if [ -n "$1" -a -f "$1" ]; then
295 destfile=`basename $1` 301 destfile=`basename $1`
302 filetype=`echo $destfile|cut -d. -f2`
303 if [ -n "$filetype" ]; then destfile=$filetype; fi
296 if [ -n "$subst" ]; then 304 if [ -n "$subst" ]; then
297 sed -f $subst < $1 > $ctrldir/$destfile 305 sed -f $subst < $1 > $ctrldir/$destfile
@@ -310,5 +318,16 @@ if [ $? != 0 ]; then
310fi 318fi
311 319
312cd $destdir; createFileList $control ipkgFileList 320ctrldir=$tempDir/CONTROL
321
322mkdir -p $ctrldir
323
324if [ ! -e $subst ] || [ -z "$subst" ]; then
325 cat $control > $ctrldir/control.new
326else
327 sed -f $subst < $control > $ctrldir/control.new
328fi
329
330createFileList $ctrldir/control.new ipkgFileList
331
313if [ "$?" != "0" ]; then 332if [ "$?" != "0" ]; then
314 echo "$self: ERROR: missing files, not building $control" 333 echo "$self: ERROR: missing files, not building $control"
@@ -316,6 +335,9 @@ if [ "$?" != "0" ]; then
316fi 335fi
317 336
318( cd $destdir && tar cf - $ipkgFileList 2>/dev/null ) | \ 337
319( cd $tempDir && tar xf - 2>/dev/null ) 338cat $ctrldir/control.new | egrep -v '^(Files|FileExcludeMask|FileIncludeMask):' > $ctrldir/control
339rm -f $ctrldir/control.new
340
341( cd $destdir && tar -cf - $ipkgFileList 2>/dev/null ) | ( cd $tempDir && tar -xf - 2>/dev/null )
320 342
321if [ -z "$filesubst" ]; then 343if [ -z "$filesubst" ]; then
@@ -348,14 +370,4 @@ else
348fi 370fi
349 371
350ctrldir=$tempDir/CONTROL
351
352mkdir -p $ctrldir
353
354if [ ! -e $subst ] || [ -z "$subst" ]; then
355 cat $control | egrep -v '^(FileIncludeMask|FileExcludeMask|Files):' > $ctrldir/control
356else
357 sed -f $subst < $control | egrep -v '^(FileIncludeMask|FileExcludeMask|Files):' > $ctrldir/control
358fi
359
360if [ "$buildsize" != "0" ]; then 372if [ "$buildsize" != "0" ]; then
361 echo "Installed-Size: $buildsize" >> $ctrldir/control 373 echo "Installed-Size: $buildsize" >> $ctrldir/control