diff options
| author | Simon Rettberg | 2014-02-03 16:06:00 +0100 |
|---|---|---|
| committer | Simon Rettberg | 2014-02-03 16:06:00 +0100 |
| commit | b171064a05caff36a66f8bdc6073395a6dfce23e (patch) | |
| tree | 148220ef43773b8665d051756b51aac0b5db61f1 /server | |
| parent | [rfs-s31] fix kernel printk lvl when splash is active (diff) | |
| download | tm-scripts-b171064a05caff36a66f8bdc6073395a6dfce23e.tar.gz tm-scripts-b171064a05caff36a66f8bdc6073395a6dfce23e.tar.xz tm-scripts-b171064a05caff36a66f8bdc6073395a6dfce23e.zip | |
[openslx] Experimental -i switch when packing sqfs to filter files from another target (saves 10MB for vmware)
Diffstat (limited to 'server')
| -rwxr-xr-x | server/export_target | 10 | ||||
| -rw-r--r-- | server/includes/packing.inc | 14 |
2 files changed, 17 insertions, 7 deletions
diff --git a/server/export_target b/server/export_target index 22b8b062..d930b8ee 100755 --- a/server/export_target +++ b/server/export_target @@ -140,20 +140,24 @@ export_target() { initial_checks copy_kernel - TARGET=$1 + local TARGET="$1" [ -z "$TARGET" ] && perror "No target passed to export_target()" [ -d "${SERVER_BUILD_DIR}/${TARGET}" ] || perror "Given target directory does not exist: ${SERVER_BUILD_DIR}/${TARGET}" + if [ -n "$3" ]; then + local IGNORE="${SERVER_BUILD_DIR}/$3" + [ -d "${IGNORE}" ] || perror "Given 'ignore target' does not exist: ${IGNORE}" + fi case "$2" in cpio) local TOOL_STR="${TOOL_STR} generate_initramfs:" pinfo "Writing 'initramfs-${TARGET}' to '${SERVER_BOOT_DIR}/'" - generate_initramfs "${SERVER_BUILD_DIR}/${TARGET}/" "." "${SERVER_BOOT_DIR}/initramfs-${TARGET}" + generate_initramfs "${SERVER_BUILD_DIR}/${TARGET}/" "." "${SERVER_BOOT_DIR}/initramfs-${TARGET}" "$IGNORE" ;; sqfs) local TOOL_STR="${TOOL_STR} generate_squashfs:" pinfo "Creating '${TARGET}.sqfs' in '${SERVER_BOOT_DIR}/'" - generate_squashfs "${SERVER_BUILD_DIR}/${TARGET}/" "${SERVER_BOOT_DIR}/${TARGET}.sqfs" + generate_squashfs "${SERVER_BUILD_DIR}/${TARGET}/" "${SERVER_BOOT_DIR}/${TARGET}.sqfs" "$IGNORE" ;; *) perror "Invalid export format: $2" diff --git a/server/includes/packing.inc b/server/includes/packing.inc index 85d28de4..b94d06e8 100644 --- a/server/includes/packing.inc +++ b/server/includes/packing.inc @@ -7,7 +7,7 @@ # 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." + [ $# -lt 3 ] && perror "Sanity check failed: generate_initramfs needs at least three params, but $# were given." cd "$1" || perror "Cannot cd to '$1'" rm -f -- "$3" @@ -23,14 +23,20 @@ generate_initramfs() { # generates squashfs of directory # usage: -# generate_squashfs <source_dir> <destination_dir/filename> +# generate_squashfs <source_dir> <destination_dir/filename> [ignore_root] generate_squashfs() { - [ $# -ne 2 ] && perror "Sanity check failed: generate_squashfs needs exactly two params, but $# were given." + [ $# -lt 2 ] && perror "Sanity check failed: generate_squashfs needs at least two params, but $# were given." [ -d "$1" ] || perror "$1 is not a directory." + local IGNORE="${2}.ignore" + truncate -s 0 "$IGNORE" + if [ -n "$3" ]; then + find "$3" -type f -o -type l | cut -c "$(( ${#3} + 2 ))-" > "$IGNORE" + fi rm -f -- "$2" - mksquashfs "$1" "$2" -comp xz -b 1M -no-recovery >&6 \ + mksquashfs "$1" "$2" -ef "$IGNORE" -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}')" + rm -f -- "$IGNORE" } |
