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 ports/core-cross releases crux-arm-rootfs-2.7"
8 echo " \$ $(basename $0) tmp ports/core-cross releases crux-arm-rootfs-2.6"
9 echo " \$ $(basename $0) tmp ports/core-cross-noeabi releases crux-arm-rootfs-2.6-noeabi"
13 # msgWarn: show a warning message
15 echo "Warning, $@" 2>&1
18 # msgError: show a error message and exit
24 # checkCommands: checks for command dependencies
26 for cmd
in sudo pkgmk
tar md5sum; do
27 if ! which $cmd 2>&1 >/dev
/null
; then
28 msgError
"'$cmd' is not in your \$PATH and you need it to execute this script"
33 # checkVars: checks for user given arguments
41 [ $# -lt 1 ] && msgUsage
42 [ ! -z "$1" ] && TMP_DIR
="$1"
43 [ "$TMP_DIR" = "/tmp" ] && msgError
"you can't use /tmp as TMP_DIR"
44 [ ! -z "$2" ] && PKG_DIR
="$2"
45 [ ! -z "$3" ] && RELEASE_DIR
="$3"
46 [ ! -z "$4" ] && RELEASE_NAME
="$4"
47 # check for directories, if not create them
48 for dir
in $TMP_DIR $RELEASE_DIR; do
49 if [ ! -d "$dir" ]; then
50 msgWarn
"creating directory '$dir'" && install -d $dir || exit 1
53 TMP_DIR
="$(cd $TMP_DIR; pwd)"
54 PKG_DIR
="$(cd $PKG_DIR; pwd)"
55 RELEASE_DIR
="$(cd $RELEASE_DIR; pwd)"
56 [ -z "$PACKAGES" ] && PACKAGES
="$(find $PKG_DIR -type f -name '*#*pkg.tar.gz')"
61 TMP_DIR
="$PWD_DIR/tmp"
62 PKG_DIR
="$PWD_DIR/pkg"
63 RELEASE_DIR
="$PWD_DIR/releases"
64 RELEASE_NAME
="crux-arm-rootfs-2.7"
70 # create the database stuff for pkgutils
71 sudo
install -d -m 0755 $TMP_DIR/var
/lib
/pkg
72 sudo
touch $TMP_DIR/var
/lib
/pkg
/db
73 sudo
chmod 0444 $TMP_DIR/var
/lib
/pkg
/db
75 # install all packages
77 for pkg
in $PACKAGES; do
78 sudo pkgadd
-r $TMP_DIR $pkg && echo "Installing $pkg" || exit 1
82 # create the tarball and the md5sum
83 cd $TMP_DIR && sudo
tar cvjf
$RELEASE_DIR/$RELEASE_NAME.
tar.bz2
* && cd ..
84 cd $RELEASE_DIR && md5sum $RELEASE_NAME.
tar.bz2
> $RELEASE_NAME.
tar.bz2.md5
&& cd ..
86 echo "Installed packages: $pkgnum"
88 echo "Release done: $RELEASE_DIR/$RELEASE_NAME.tar.bz2"