ignore .svn dirs when making binary packages
[minix.git] / commands / scripts / binpackage.sh
blob4c92e049b7f9e041c8647d98867cab143d825e93
1 #!/bin/sh
3 PATH=/bin:/sbin:/usr/bin:/usr/sbin
4 PI=.postinstall
5 INFO=.minixpackage
7 set -e
9 # No trailing slashes in the directory, because we want to base the
10 # package filename on it.
11 dir=`echo "$1" | sed 's/\/*$//'`
13 if [ $# -ne 2 ]
14 then echo "Usage: $0 sourcedir packagedir"
15 exit 1
18 if [ ! -d "$dir" ]
19 then echo "Error: $dir isn't a directory."
20 exit 1
23 here=`pwd`
25 case "$dir" in
26 /*) srcdir="$dir" ;;
27 *) srcdir="$here/$dir" ;;
28 esac
30 case $2 in
31 /*) pdir="$2" ;;
32 *) pdir="$here/$2" ;;
33 esac
35 packagestart=$srcdir/now
36 findlist=$srcdir/findlist
37 tar=$srcdir/"`basename ${dir}`".tar
38 tarbz=$tar.bz2
40 mkdir $pdir 2>/dev/null || true
41 binsizes=big
42 rc=$dir/.binpackage
43 if [ -f $rc ]
44 then . $rc
46 binsizes $binsizes
47 touch $packagestart
48 sleep 1
49 cd $dir
51 if [ ! -f build -a ! -f build.minix ]
52 then echo "Error: No build or build.minix script in $dir."
53 exit 1
56 if [ -f build.minix ]
57 then sh -e build.minix
58 else sh -e build
61 echo " * Building package"
62 echo "Minix package $dir built `date`." >$INFO
63 ( echo $INFO ; if [ -f $PI ]; then echo $PI; fi; find / -cnewer $packagestart | egrep -v "^($srcdir|/(dev|tmp)|/usr/(src|tmp|log|adm|run)|/home|/etc/utmp|/var/(run|log|spool))" | fgrep -v /.svn ) | pax -w -d | bzip2 >$tarbz
64 rm -f $packagestart $findlist $tarcmd
65 binsizes normal
66 mv $tarbz $pdir
67 exit 0