eb062e7895488a093dbeac6a23e9c7155e6c2550
3 # msgUsage: show a usage message and exit
5 echo "Usage: $(basename $0) <tmp-dir> <pkg-dir> <release-dir> <release-name>"
7 echo " \$ $(basename $0) /tmp/rootfs ports/core-cross . minirootfs-XX"
8 echo " \$ $(basename $0) /tmp/rootfs /pub/pkg releases crux-arm-rootfs-XX"
12 # msgError: show a error message and exit
18 # checkCommands: checks for command dependencies
20 for cmd
in sudo pkgmk
tar md5sum; do
21 if ! which $cmd 2>&1 >/dev
/null
; then
22 msgError
"'$cmd' is not in your \$PATH and you need it to execute this script"
27 # checkVars: checks for user given arguments
35 [ $# -lt 1 ] && msgUsage
36 [ ! -z "$1" ] && TMPDIR
="$1"
37 [ "$TMPDIR" = "/tmp" ] && msgError
"you can't use /tmp as TMPDIR"
38 [ ! -z "$2" ] && PKGDIR
="$2"
39 [ ! -z "$3" ] && RELEASE_DIR
="$3"
40 [ ! -z "$4" ] && RELEASE_NAME
="$4"
41 # check for directories, if not create them
42 for dir
in $TMPDIR $RELEASE_DIR; do
43 if [ ! -d "$dir" ]; then
44 install -d $dir || msgError
"can't create directory $dir"
47 TMPDIR
="$(cd $TMPDIR; pwd)"
48 PKGDIR
="$(cd $PKGDIR; pwd)"
49 RELEASE_DIR
="$(cd $RELEASE_DIR; pwd)"
50 [ -z "$PACKAGES" ] && PACKAGES
="$(find $PKGDIR -type f -name '*#*pkg.tar.*')"
61 # create the database stuff for pkgutils
62 sudo
install -d -m 0755 $TMPDIR/var
/lib
/pkg
63 sudo
touch $TMPDIR/var
/lib
/pkg
/db
64 sudo
chmod 0444 $TMPDIR/var
/lib
/pkg
/db
66 # install all packages
68 echo "Please wait for results..."
69 for pkg
in $PACKAGES; do
70 sudo pkgadd
-r $TMPDIR $pkg || msgError
"failed to install $pkg"
74 # create the tarball and the md5sum
75 cd $TMPDIR && sudo
tar cJf
$RELEASE_DIR/$RELEASE_NAME.
tar.xz
* && cd -
76 cd $RELEASE_DIR && md5sum $RELEASE_NAME.
tar.xz
> $RELEASE_NAME.
tar.xz.md5
&& cd -
78 echo "- Installed $pkgnum packages"
79 echo "- Finished $RELEASE_DIR/$RELEASE_NAME.tar.xz"