summaryrefslogtreecommitdiffstats
path: root/helper
diff options
context:
space:
mode:
authorMichael Neves2013-02-28 15:00:24 +0100
committerMichael Neves2013-02-28 15:00:24 +0100
commite4e4261fbb5fce8e2f2a612fc303bb366200b0f3 (patch)
treea4757ccec8ad9f07dd9bf8f40e8fb8e2da6135da /helper
parentsmall fixes (diff)
parentGeneralization: (diff)
downloadtm-scripts-e4e4261fbb5fce8e2f2a612fc303bb366200b0f3.tar.gz
tm-scripts-e4e4261fbb5fce8e2f2a612fc303bb366200b0f3.tar.xz
tm-scripts-e4e4261fbb5fce8e2f2a612fc303bb366200b0f3.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Conflicts: helper/fileutil.inc remote/tools/base/base.build
Diffstat (limited to 'helper')
-rw-r--r--helper/fileutil.inc46
1 files changed, 46 insertions, 0 deletions
diff --git a/helper/fileutil.inc b/helper/fileutil.inc
index 49802d2b..087a9a7f 100644
--- a/helper/fileutil.inc
+++ b/helper/fileutil.inc
@@ -1,3 +1,16 @@
+# one time jobs
+
+# determine packet manager:
+if [ ! -z "$(which apt-get)" ]; then
+ PACKET_MANAGER="apt"
+elif [ ! -z "$(which zypper)" ]; then
+ PACKET_MANAGER="zypper"
+else
+ perror "Could not determine this platform's packet manager"
+fi
+
+#
+
# copy list of files using tar
tarcopy () {
[ $# -ne 2 ] && perror "Sanity check failed: tarcopy needs exactly two params, but $# were given."
@@ -16,6 +29,39 @@ tarcopy () {
[ "x${PS[1]}" != "x0" ] && perror "unpacking-part of tar-copy from '$SHORT' to '$TO' failed. (${PS[1]})"
}
+# get all files of required packages by a module
+list_packet_files() {
+ [ -z "$REQUIRED_PACKAGES" ] && return
+ for PACKAGE in $REQUIRED_PACKAGES; do
+ local FILES=""
+ if [ "$PACKET_MANAGER" = "apt" ]; then
+ FILES="$(dpkg -L "$PACKAGE" | grep -v share/doc | grep -v share/man; echo ":###:${PIPESTATUS[0]}")"
+ elif [ "$PACKET_MANAGER" = "zypper" ]; then
+ FILES="$(rpm -ql "$PACKAGE" | grep -v share/doc | grep -v share/man; echo ":###:${PIPESTATUS[0]}")"
+ fi
+ # ugly hack to get our return value
+ #local LPRET=$(echo "$FILES" | tail -1 | sed 's/^.*:###:\([0-9]*\)$/\1/g')
+ #FILES=$(echo "$FILES" | sed 's/^\(.*\):###:[0-9]*$/\1/g')
+ local LPRET=$(echo "$FILES" | awk -F ':###:' '{printf $2}')
+ FILES=$(echo "$FILES" | awk -F ':###:' '{print $1}')
+ [ "x$LPRET" != "x0" ] && perror "list_packet_files exited with code '$LPRET' for packet ${PACKAGE}."
+ [ -z "$FILES" ] && perror "list_packet_files empty for packet ${PACKAGE}."
+ for FILE in $FILES; do
+ [ ! -d "$FILE" ] && echo "$FILE"
+ done
+ done
+}
+
+# install all dependencies of a module
+install_dependencies() {
+ [ -z "$REQUIRED_DEPENDENCIES" ] && return
+ if [ "$PACKET_MANAGER" = "apt" ]; then
+ apt-get install -y $REQUIRED_DEPENDENCIES || perror "Could not apt-get install $REQUIRED_DEPENDENCIES"
+ elif [ "$PACKET_MANAGER" = "zypper" ]; then
+ zypper install -y $REQUIRED_DEPENDENCIES || perror "Could not zypper install $REQUIRED_DEPENDENCIES"
+ fi
+}
+
# generate initramfs of directory
generate_initramfs() {
[ $# -ne 2 ] && perror "Sanity check failed: generate_initramfs needs exactly two params, but $# were given."