diff options
author | Jonathan Bauer | 2014-03-25 15:24:04 +0100 |
---|---|---|
committer | Jonathan Bauer | 2014-03-25 15:24:04 +0100 |
commit | 3d1235af060955e271be68240c0ca46bc6d81b03 (patch) | |
tree | ef02dcc4bb8476cfeef07e2df6a38b4c29d350df /remote/modules/dbus/module.build | |
parent | [rootfs-stage32] /var/log/openslx in tmpfiles.d (diff) | |
download | tm-scripts-3d1235af060955e271be68240c0ca46bc6d81b03.tar.gz tm-scripts-3d1235af060955e271be68240c0ca46bc6d81b03.tar.xz tm-scripts-3d1235af060955e271be68240c0ca46bc6d81b03.zip |
[modules] new module naming convention
rename $MODULE.{conf,build} to module.{conf,build}
Diffstat (limited to 'remote/modules/dbus/module.build')
-rw-r--r-- | remote/modules/dbus/module.build | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/remote/modules/dbus/module.build b/remote/modules/dbus/module.build new file mode 100644 index 00000000..c5b2d353 --- /dev/null +++ b/remote/modules/dbus/module.build @@ -0,0 +1,63 @@ +#!/bin/bash + +fetch_source() { + echo "Extracting from running system..." +} + +build() { + COPYLIST="list_dpkg_output" + [ -e "${COPYLIST}" ] && rm "${COPYLIST}" + + list_packet_files >> "${COPYLIST}" + tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}" + + # Generate systemd files + mkdir -p "$MODULE_BUILD_DIR/etc/systemd/system" + # This is ugly, as the command line arguments changed over time. Try to do the right thing (whatever that is) + # Need to run dbus-uuidgen first? + local UUIDGEN="# This line intentionally left blank" + if files_contain "ExecStartPre.*uuidgen" "/lib/systemd/system/dbus.service" "/usr/lib/systemd/system/dbus.service"; then + UUIDGEN=$(find "$MODULE_BUILD_DIR" -name dbus-uuidgen -executable | head -n 1) + [ -z "$UUIDGEN" ] && perror "Could not determine dbus-uuidgen location" + UUIDGEN="ExecStartPre=/${UUIDGEN#$MODULE_BUILD_DIR} --ensure" + fi + # Figure out daemon location + local DAEMON=$(find "$MODULE_BUILD_DIR" -name dbus-daemon -executable | head -n 1) + [ -z "$DAEMON" ] && perror "Could not determine dbus-daemon location" + DAEMON="/${DAEMON#$MODULE_BUILD_DIR}" + local DAEMON_ARGS="" + # Daemon arguments + if files_contain "dbus-daemon.*nopidfile" "/lib/systemd/system/dbus.service" "/usr/lib/systemd/system/dbus.service"; then + DAEMON_ARGS+=" --nopidfile" + fi + if files_contain "dbus-daemon.*activation=systemd" "/lib/systemd/system/dbus.service" "/usr/lib/systemd/system/dbus.service"; then + DAEMON_ARGS+=" --activation=systemd" + fi + if files_contain "dbus-daemon.*systemd-activation" "/lib/systemd/system/dbus.service" "/usr/lib/systemd/system/dbus.service"; then + DAEMON_ARGS+=" --systemd-activation" + fi + # dbus-send location + local SEND=$(find "$MODULE_BUILD_DIR" -name dbus-send -executable | head -n 1) + [ -z "$SEND" ] && perror "Could not determine dbus-send location" + SEND="/${SEND#$MODULE_BUILD_DIR}" + sed "s,%UUIDGEN%,$UUIDGEN,g;s,%DAEMON%,$DAEMON,g;s,%SEND%,$SEND,g;s,%DAEMON_ARGS%,$DAEMON_ARGS,g" "templates/dbus.service" \ + > "$MODULE_BUILD_DIR/etc/systemd/system/dbus.service" \ + || perror "Could not generate $MODULE_BUILD_DIR/etc/systemd/system/dbus.service" +} + +post_copy() { + : +} + +files_contain () { + [ $# -lt 2 ] && perror "files_contain needs at least 2 arguments (pattern, file)" + local PATTERN="$1" + shift + local FILE + for FILE in $@; do + [ -e "$FILE" ] || continue + grep -q "$PATTERN" "$FILE" && return 0 # Found + done + return 1 +} + |