diff options
author | torben | 2015-12-04 14:52:09 +0100 |
---|---|---|
committer | torben | 2015-12-04 14:52:09 +0100 |
commit | a3e8f1ed6f4dc09a461820c4a77b3bfa53a78750 (patch) | |
tree | b39fac58db06629c46aef3a9318123f3c67f9ba0 /builder/build-initramfs.sh | |
parent | Remove unneeded kcl params. (diff) | |
download | systemd-init-a3e8f1ed6f4dc09a461820c4a77b3bfa53a78750.tar.gz systemd-init-a3e8f1ed6f4dc09a461820c4a77b3bfa53a78750.tar.xz systemd-init-a3e8f1ed6f4dc09a461820c4a77b3bfa53a78750.zip |
Fix submodules. Improve portability.
Diffstat (limited to 'builder/build-initramfs.sh')
-rwxr-xr-x | builder/build-initramfs.sh | 58 |
1 files changed, 48 insertions, 10 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh index cb85a86e..c81f4036 100755 --- a/builder/build-initramfs.sh +++ b/builder/build-initramfs.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # -*- coding: utf-8 -*- -# region header +# region header # Copyright Torben Sickert (t.sickert["~at~"]gmail.com) 29.10.2015 # Janosch Dobler (TODO) 29.10.2015 @@ -54,6 +54,25 @@ # endregion +set -o errexit +build_initramfs__needed_location='./dnbd3-rootfs' +if ! [[ -d "$build_initramfs__needed_location" ]]; then + echo "The dnbd3 dracut plugin isn't available, loading it." + build_initramfs__temporary_repository_location="$(mktemp --directory)" + git clone git://git.openslx.org/openslx-ng/systemd-init.git \ + "$build_initramfs__temporary_repository_location" + pushd "$build_initramfs__temporary_repository_location" + git submodule init + git submodule update + popd + cp --recursive "$build_initramfs__temporary_repository_location" \ + "$build_initramfs__needed_location" + rm --recursive --force "$build_initramfs__temporary_repository_location" +fi +set +o errexit + +echo 'AAA' + source "$(dirname "${BASH_SOURCE[0]}")/dnbd3-rootfs/scripts/rebash/core.sh" core.import logging core.import utils @@ -66,6 +85,7 @@ logging.set_log_level critical # region properties +build_initramfs_dracut_parameter='--force --no-hostonly' build_initramfs_verbose='no' build_initramfs_debug='no' build_initramfs_create_system_image='' @@ -107,6 +127,9 @@ function build_initramfs_print_command_line_option_description() { -i --create-system-image Creates an image under given path from current system. (default: "$build_initramfs_create_system_image"). + +Additional dracut parameter and normal parameter can be deleimiter via a single +dash (-) (default: "$build_initramfs_dracut_parameter"). EOF } function build_initramfs_print_help_message() { @@ -153,6 +176,14 @@ function build_initramfs_parse_command_line() { fi shift ;; + -) + shift + while [[ "$1" =~ ^.+$ ]]; do + build_initramfs_dracut_parameter+=" $1" + shift + done + shift + ;; '') break @@ -225,13 +256,16 @@ function build_initramfs_cleanup() { # region controller -# TODO check for existing kernel headers: - # ubuntu: sudo apt-get install linux-headers-$(uname -r) -# TODO Check for: -# /usr/lib/x86_64-linux-gnu/libz.so ldconfig -p |grep libz.so -# for dnbd3 - utils.dependency_check "${build_initramfs_dependencies[*]}" +# TODO check for existing kernel headers. +if false; then + logging.error "You have to install the compression library \"libz\". Otherwise we aren't able to compile dnbd3 for your kernel." + exit 1 +fi +if ! ldconfig --print-cache | grep libz.so; then + logging.critical "You have to install the compression library \"libz\". Otherwise we aren't able to compile dnbd3 for your kernel." + exit 1 +fi if ! build_initramfs_parse_command_line "$@"; then build_initramfs_print_help_message "$0" exit 1 @@ -274,10 +308,14 @@ elif [[ "$build_initramfs_cleanup" == 'yes' ]]; then build_initramfs_cleanup else logging.info 'Build initramfs.' - dracut/dracut.sh --local $build_initramfs__loglevel --force --modules \ - "$build_initramfs__modules" --no-hostonly /boot/initramfs-test.img + # NOTE: We deactivate our exception handle since dracut returns "1" if it + # is launched with help parameter ("-h" or "--help"). + exceptions.deactivate + dracut/dracut.sh --local $build_initramfs__loglevel --modules \ + "$build_initramfs__modules" ${build_initramfs_dracut_parameter[*]} \ + /boot/initramfs-test.img + exceptions.activate fi -logging.info 'Done!' exceptions.deactivate # endregion |