summaryrefslogtreecommitdiffstats
path: root/builder/build-initramfs.sh
diff options
context:
space:
mode:
authortorben2015-12-04 14:52:09 +0100
committertorben2015-12-04 14:52:09 +0100
commita3e8f1ed6f4dc09a461820c4a77b3bfa53a78750 (patch)
treeb39fac58db06629c46aef3a9318123f3c67f9ba0 /builder/build-initramfs.sh
parentRemove unneeded kcl params. (diff)
downloadsystemd-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-xbuilder/build-initramfs.sh58
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