summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-extra-script
diff options
context:
space:
mode:
authorSimon Rettberg2024-06-12 15:39:02 +0200
committerSimon Rettberg2024-06-12 15:39:02 +0200
commit851a6682cd97f7c0a9305bacf3a3f36a53848cc8 (patch)
tree5933057174ba892944f20df351e1692a77f1a227 /modules.d/slx-extra-script
parent[dnbd3-rootfs] Kill SLX_GENERATE_FSTAB_SCRIPT (diff)
downloadsystemd-init-851a6682cd97f7c0a9305bacf3a3f36a53848cc8.tar.gz
systemd-init-851a6682cd97f7c0a9305bacf3a3f36a53848cc8.tar.xz
systemd-init-851a6682cd97f7c0a9305bacf3a3f36a53848cc8.zip
[slx-extra-script] Split up in pre/post-dmsetup
The supplied extra script will be called twice, with either pre-dmsetup or post-dmsetup as the first parameter.
Diffstat (limited to 'modules.d/slx-extra-script')
-rwxr-xr-xmodules.d/slx-extra-script/hooks/s3-extra-script.sh12
-rwxr-xr-xmodules.d/slx-extra-script/module-setup.sh5
-rw-r--r--modules.d/slx-extra-script/services/s3-extra-post-dmsetup.service13
3 files changed, 23 insertions, 7 deletions
diff --git a/modules.d/slx-extra-script/hooks/s3-extra-script.sh b/modules.d/slx-extra-script/hooks/s3-extra-script.sh
index 3a8d4ff4..7ac293ee 100755
--- a/modules.d/slx-extra-script/hooks/s3-extra-script.sh
+++ b/modules.d/slx-extra-script/hooks/s3-extra-script.sh
@@ -1,10 +1,8 @@
-#!/bin/bash
-# -*- coding: utf-8 -*-
-# region imports
+#!/bin/ash
+#
. /etc/openslx
-# endregion
[ -z "$SLX_EXTRA_SCRIPT_URL" ] && exit 0
-slx-tools download_retry --slx-time 20 -sS "$SLX_EXTRA_SCRIPT_URL" > /tmp/extra-init || exit 1
-chmod +x /tmp/extra-init
-exec /tmp/extra-init
+slx-tools download_retry --slx-time 20 -sS "$SLX_EXTRA_SCRIPT_URL" > /etc/extra-init || exit 1
+chmod +x /etc/extra-init
+exec /etc/extra-init pre-dmsetup
diff --git a/modules.d/slx-extra-script/module-setup.sh b/modules.d/slx-extra-script/module-setup.sh
index 02f61391..da057429 100755
--- a/modules.d/slx-extra-script/module-setup.sh
+++ b/modules.d/slx-extra-script/module-setup.sh
@@ -10,4 +10,9 @@ install() {
slx_service "s3-extra-script" "Execute extra script from URL" \
--wafter "s3-fetch-config.service" \
--before "s3-dnbd3root.service"
+ mkdir --parents "${initdir}/${systemdsystemunitdir}/initrd.target.wants"
+ inst_simple "${moddir}/services/s3-extra-post-dmsetup.service" \
+ "${systemdsystemunitdir}/s3-extra-post-dmsetup.service"
+ ln_r "${systemdsystemunitdir}/s3-extra-post-dmsetup.service" \
+ "${systemdsystemunitdir}/initrd.target.wants/s3-extra-post-dmsetup.service"
}
diff --git a/modules.d/slx-extra-script/services/s3-extra-post-dmsetup.service b/modules.d/slx-extra-script/services/s3-extra-post-dmsetup.service
new file mode 100644
index 00000000..fd1f18e6
--- /dev/null
+++ b/modules.d/slx-extra-script/services/s3-extra-post-dmsetup.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Run extra script after dmsetup
+ConditionFileIsExecutable=/etc/extra-init
+After=s3-dnbd3root.service
+Before=s3-write-fstab.service
+Before=initrd-switch-root.target initrd-cleanup.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/etc/extra-init post-dmsetup
+KillMode=process
+KillSignal=SIGTERM