diff options
author | Simon Rettberg | 2014-01-02 19:36:42 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-01-02 19:36:42 +0100 |
commit | 61c9b1c97b1f5d07183987c2256637e523d1ff17 (patch) | |
tree | 5c5fa89bb09873edceae121c2222948083636972 /helper/fileutil.inc | |
parent | <setup_target> Add check for changed .build/.conf file of modules, autoclean ... (diff) | |
download | tm-scripts-61c9b1c97b1f5d07183987c2256637e523d1ff17.tar.gz tm-scripts-61c9b1c97b1f5d07183987c2256637e523d1ff17.tar.xz tm-scripts-61c9b1c97b1f5d07183987c2256637e523d1ff17.zip |
!! Split up 'mltk' into 'mltk' and 'openslx' !!
'mltk remote' is now 'mltk'
'mltk server' is now 'openslx'
Also changed the export type (-e) stage31 to 'cpio'
and stage32 and addons to 'sqfs'
It should describe what it's packed as, not what the meaning
of the content is; you can already tell from the file name.
Diffstat (limited to 'helper/fileutil.inc')
-rw-r--r-- | helper/fileutil.inc | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/helper/fileutil.inc b/helper/fileutil.inc index aae654bc..525e46a7 100644 --- a/helper/fileutil.inc +++ b/helper/fileutil.inc @@ -29,203 +29,4 @@ 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_CONTENT_PACKAGES" ] && pinfo "No required packages for $TOOL" && return 1 - local PACKAGE="" - for PACKAGE in $REQUIRED_CONTENT_PACKAGES; do - local OPTIONAL="$(echo "$PACKAGE" | cut -c 1)" - [ "x$OPTIONAL" = "x@" ] && PACKAGE="$(echo "$PACKAGE" | cut -c 2-)" - local FILES="" - if [ "$PACKET_HANDLER" = "dpkg" ]; then - PACKAGECOMMAND="dpkg -L" - elif [ "$PACKET_HANDLER" = "rpm" ]; then - PACKAGECOMMAND="rpm -ql" - fi - if [ -n "$REQUIRED_PACKET_FILES_BLACKLIST" ]; then - FILES="$($PACKAGECOMMAND "$PACKAGE" | grep "^/" | \ - grep -v "$REQUIRED_PACKET_FILES_BLACKLIST" | \ - grep -v -E 'share/(man|doc)|/var/run|/var/log'; \ - echo ":###:${PIPESTATUS[0]}")" - else - FILES="$($PACKAGECOMMAND "$PACKAGE" | grep "^/" | grep -v -E 'share/(man|doc)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" - fi -# FILES="$(rpm -ql "$PACKAGE" | grep "^/" | grep -v -E 'share/(man|doc)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" - - # 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}') - if [ "x$LPRET" != "x0" -a "x$OPTIONAL" != "x@" ]; then - pdebug "FILES: '$FILES'" - perror "dpkg/rpm exited with code '$LPRET' for required package ${PACKAGE}." - fi - [ "x$LPRET" != "x0" ] && pwarning "dpkg/rpm exited with code '$LPRET' for optional package ${PACKAGE}." && continue - [ -z "$FILES" ] && pwarning "list_packet_files empty for packet ${PACKAGE}." && continue - pdebug "Packet $PACKAGE has $(echo $FILES | wc -w) files..." - for FILE in $FILES; do - [ ! -d "$FILE" ] && echo "$FILE" - done - done -} -# -# Conveniance function -# -# install all dependencies of a module -# goes through all package as given in the variable REQUIRED_INSTALLED_PACKAGES -install_dependencies() { - [ -z "$REQUIRED_INSTALLED_PACKAGES" ] && return - install_packages "$REQUIRED_INSTALLED_PACKAGES" -} -# -# install given packet through system's packet manager -# uses PACKET_HANDLER as determined in helper/system.inc -# -install_packages() { - [ $# -eq 0 ] && perror "Sanity check failed: no argument given to install_package" - local PACKAGE_LIST="$@" - local INSTALLED_PACKAGES="" - - for PKG in ${PACKAGE_LIST}; do - # check if installed - if [ "x$PACKET_HANDLER" == "xdpkg" ]; then - dpkg -l ${PKG} > /dev/null 2>&1 - elif [ "x$PACKET_HANDLER" == "xrpm" ]; then - rpm -ql ${PKG} > /dev/null 2>&1 - else - perror "No packet manager / handler determined, this should not happen!" - fi - - local LRET=$? - if [ "x$LRET" == "x0" ]; then - # check if it is completly installed, - # not just leftover configuration files - local INSTALL_STATUS=$(dpkg -l $PKG | grep $PKG | cut -c1-2) - if [[ $INSTALL_STATUS != "ii" ]]; then - pinfo "$PKG not installed!" - install_package $PKG - else - # package installed - pdebug "$PKG installed!" - fi - else - # package not installed - pdebug "$PKG not installed!" - install_package $PKG - fi - done - [ ! -z "$INSTALLED_PACKAGES" ] && pinfo "Packages installed: ${INSTALLED_PACKAGES}" -} - -# -# install individual package depending on package manager -# -install_package() { - if [ "$#" -ne 1 ]; then - perror "Only call install_package with one argument!" - fi - - if [ "x$PACKET_MANAGER" == "xapt" ]; then - apt-get install -y ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: apt-get failed with '$IRET' for package '$PKG'" - fi - elif [ "x$PACKET_MANAGER" == "xzypper" ]; then - zypper --no-refresh --non-interactive install ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: zypper failed with '$IRET' for package '$PKG'" - fi - elif [ "x$PACKET_MANAGER" == "xyum" ]; then - yum --assumeyes install ${PKG} - local IRET=$? - if [ "x$IRET" == "x0" ]; then - # $PGK was installed successfully - INSTALLED_PACKAGES+="$PKG " - else - # PKG was not installed - # TODO error handling - perror "install_packages: yum failed with '$IRET' for package '$PKG'" - fi - else - perror "No packet manager determined, this should not happen!" - fi -} - -# -# copies static data files from <MODULE>/data/ to <TARGET_BUILD_DIR> -# -copy_static_data() { - [ ! -d "${MODULE_DIR}/data" ] && pinfo "${MODULE} has no static 'data' directory." && return - cp -r "${MODULE_DIR}/data/"* ${TARGET_BUILD_DIR} || perror "Could not copy static data of ${MODULE}" -} - -copy_system_files() { - [ ! -z "$REQUIRED_SYSTEM_FILES" ] && tarcopy "$REQUIRED_SYSTEM_FILES" "$TARGET_BUILD_DIR" -} - -calc_size() { - - local CURRENT_BUILD_SIZE=$(du -bc "${TARGET_BUILD_DIR}" | awk 'END {print $1}') - - [ ! -z "${BUILD_SIZE[$MODULE]}" ] && local OLD_MODULE_SIZE=${BUILD_SIZE[$MODULE]} || local OLD_MODULE_SIZE=0 - local diff=$((CURRENT_BUILD_SIZE-TARGET_BUILD_SIZE+OLD_MODULE_SIZE)) - - if [ -z "${BUILD_SIZE[$MODULE]}" ]; then - echo "BUILD_SIZE[$MODULE]=${diff}" >> "${ROOT_DIR}/logs/${TARGET}.size" - else - sed -i "s/^BUILD_SIZE\[${MODULE}\]=.*$/BUILD_SIZE\[${MODULE}\]=${diff}/g" "${ROOT_DIR}/logs/${TARGET}.size" - fi - - MODULE_BUILD_SIZE=$(echo $diff | awk '{ sum=$1; hum[1024^3]="GB"; hum[1024^2]="MB"; hum[1024]="KB"; - for (x=1024^3; x>=1024; x/=1024){ - if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x]; break } - } - }') -} - -# -# generate initramfs of directory -# usage: -# generate_initramfs <source_dir> <files> <destination_dir/filename> -# example: -# generate_initramfs "./server/boot/stage32_sqfs" "./mnt/openslx.sqfs" "./server/boot/initramfs2" -# generate_initramfs "./server/build/stage31" "." "./server/boot/initramfs" -generate_initramfs() { - [ $# -ne 3 ] && perror "Sanity check failed: generate_initramfs needs exactly two params, but $# were given." - cd "$1" || perror "Cannot cd to '$1'" - - find $2 | cpio --format="newc" --create | gzip -9 > "$3" - local PS=(${PIPESTATUS[*]}) - [ "x${PS[0]}" != "x0" ] && perror "'find $2' in '$(pwd)' failed." - [ "x${PS[1]}" != "x0" ] && perror "cpio create failed." - [ "x${PS[2]}" != "x0" ] && perror "gzip to '$3' failed." - cd - &> /dev/null - pinfo "Created initramfs of $1 at $3" - pinfo "Size: $(du -bsh "$3" | awk 'END {print $1}')" -} - -# generates squashfs of directory -# usage: -# generate_squashfs <source_dir> <destination_dir/filename> -generate_squashfs() { - [ $# -ne 2 ] && perror "Sanity check failed: generate_squashfs needs exactly two params, but $# were given." - [ -d "$1" ] || perror "$1 is not a directory." - mksquashfs "$1" "$2" -comp xz -b 1M -no-recovery >&6 \ - || perror "mksquashfs failed ($?)." - pinfo "Created squashfs of $1 at $2" - pinfo "Size: $(du -bsh "$2" | awk 'END {print $1}')" -} |