CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Added makeRelease.sh script which was modified for 2.7 too
authorJose V Beneyto <sepen@crux.nu>
Tue, 10 May 2011 11:23:26 +0000 (13:23 +0200)
committerJose V Beneyto <sepen@crux.nu>
Tue, 10 May 2011 11:23:26 +0000 (13:23 +0200)
makeRelease.sh [new file with mode: 0755]

diff --git a/makeRelease.sh b/makeRelease.sh
new file mode 100755 (executable)
index 0000000..fb1fb56
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# msgUsage: show a usage message and exit
+msgUsage() {
+  echo "Usage: $(basename $0) [TMP_DIR] [PKG_DIR] [RELEASE_DIR] [RELEASE_NAME]"
+  echo "Examples:"
+  echo " \$ $(basename $0) tmp ports/core-cross releases crux-arm-rootfs-2.7"
+  echo " \$ $(basename $0) tmp ports/core-cross releases crux-arm-rootfs-2.6"
+  echo " \$ $(basename $0) tmp ports/core-cross-noeabi releases crux-arm-rootfs-2.6-noeabi"
+  exit 0
+}
+
+# msgWarn: show a warning message
+msgWarn() {
+  echo "Warning, $@" 2>&1
+}
+
+# msgError: show a error message and exit
+msgError() {
+  echo "Error, $@" 2>&1
+  exit 1
+}
+
+# checkCommands: checks for command dependencies
+checkCommands() {
+  for cmd in sudo pkgmk tar md5sum; do
+    if ! which $cmd 2>&1 >/dev/null; then
+      msgError "'$cmd' is not in your \$PATH and you need it to execute this script"
+    fi
+  done
+}
+
+# checkVars: checks for user given arguments
+#
+# params:
+# $1 - TMP_DIR
+# $2 - PKG_DIR
+# $3 - RELEASE_DIR
+# $4 - RELEASE_NAME
+checkVars() {
+  [ $# -lt 1 ] && msgUsage
+  [ ! -z "$1" ] && TMP_DIR="$1"
+  [ "$TMP_DIR" = "/tmp" ] && msgError "you can't use /tmp as TMP_DIR"
+  [ ! -z "$2" ] && PKG_DIR="$2"
+  [ ! -z "$3" ] && RELEASE_DIR="$3"
+  [ ! -z "$4" ] && RELEASE_NAME="$4"
+  # check for directories, if not create them
+  for dir in $TMP_DIR $RELEASE_DIR; do
+    if [ ! -d "$dir" ]; then
+      msgWarn "creating directory '$dir'" && install -d $dir || exit 1
+    fi
+  done
+  TMP_DIR="$(cd $TMP_DIR; pwd)"
+  PKG_DIR="$(cd $PKG_DIR; pwd)"
+  RELEASE_DIR="$(cd $RELEASE_DIR; pwd)"
+  [ -z "$PACKAGES" ] && PACKAGES="$(find $PKG_DIR -type f -name '*#*pkg.tar.gz')"
+}
+
+# global variables
+PWD_DIR="$(pwd)"
+TMP_DIR="$PWD_DIR/tmp"
+PKG_DIR="$PWD_DIR/pkg"
+RELEASE_DIR="$PWD_DIR/releases"
+RELEASE_NAME="crux-arm-rootfs-2.7"
+PACKAGES=""
+
+checkCommands
+checkVars $@
+
+# create the database stuff for pkgutils
+sudo install -d -m 0755 $TMP_DIR/var/lib/pkg
+sudo touch $TMP_DIR/var/lib/pkg/db
+sudo chmod 0444 $TMP_DIR/var/lib/pkg/db
+
+# install all packages
+pkgnum=0
+for pkg in $PACKAGES; do
+  sudo pkgadd -r $TMP_DIR $pkg && echo "Installing $pkg" || exit 1
+  let pkgnum=$pkgnum+1
+done
+
+# create the tarball and the md5sum
+cd $TMP_DIR && sudo tar cvjf $RELEASE_DIR/$RELEASE_NAME.tar.bz2 * && cd ..
+cd $RELEASE_DIR && md5sum $RELEASE_NAME.tar.bz2 > $RELEASE_NAME.tar.bz2.md5 && cd ..
+
+echo "Installed packages: $pkgnum"
+sudo rm -rf $TMP_DIR
+echo "Release done: $RELEASE_DIR/$RELEASE_NAME.tar.bz2"
+
+# End of file