summaryrefslogtreecommitdiffstats
path: root/remote/modules/dbus/module.build
diff options
context:
space:
mode:
authorJonathan Bauer2014-03-25 15:24:04 +0100
committerJonathan Bauer2014-03-25 15:24:04 +0100
commit3d1235af060955e271be68240c0ca46bc6d81b03 (patch)
treeef02dcc4bb8476cfeef07e2df6a38b4c29d350df /remote/modules/dbus/module.build
parent[rootfs-stage32] /var/log/openslx in tmpfiles.d (diff)
downloadtm-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.build63
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
+}
+