summaryrefslogtreecommitdiffstats
path: root/modules.d/01systemd-ac-power
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/01systemd-ac-power')
-rw-r--r--modules.d/01systemd-ac-power/99-initrd-power-targets.rules3
-rw-r--r--modules.d/01systemd-ac-power/initrd-on-ac-power.target8
-rw-r--r--modules.d/01systemd-ac-power/initrd-on-battery-power.target8
-rwxr-xr-xmodules.d/01systemd-ac-power/module-setup.sh29
4 files changed, 48 insertions, 0 deletions
diff --git a/modules.d/01systemd-ac-power/99-initrd-power-targets.rules b/modules.d/01systemd-ac-power/99-initrd-power-targets.rules
new file mode 100644
index 0000000..1490a22
--- /dev/null
+++ b/modules.d/01systemd-ac-power/99-initrd-power-targets.rules
@@ -0,0 +1,3 @@
+# This file is part of dracut systemd ac power module
+SUBSYSTEM=="power_supply", KERNEL=="AC", ATTR{online}=="0", RUN+="/usr/sbin/systemctl start initrd-on-battery-power.target"
+SUBSYSTEM=="power_supply", KERNEL=="AC", ATTR{online}=="1", RUN+="/usr/sbin/systemctl start initrd-on-ac-power.target"
diff --git a/modules.d/01systemd-ac-power/initrd-on-ac-power.target b/modules.d/01systemd-ac-power/initrd-on-ac-power.target
new file mode 100644
index 0000000..73a9978
--- /dev/null
+++ b/modules.d/01systemd-ac-power/initrd-on-ac-power.target
@@ -0,0 +1,8 @@
+# This file is part of dracut.
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+[Unit]
+Description=Initial RAM Disk On AC Power
+ConditionPathExists=/usr/lib/initrd-release
+DefaultDependencies=no
+StopWhenUnneeded=yes
diff --git a/modules.d/01systemd-ac-power/initrd-on-battery-power.target b/modules.d/01systemd-ac-power/initrd-on-battery-power.target
new file mode 100644
index 0000000..fdd54a5
--- /dev/null
+++ b/modules.d/01systemd-ac-power/initrd-on-battery-power.target
@@ -0,0 +1,8 @@
+# This file is part of dracut.
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+[Unit]
+Description=Initial RAM Disk On Battery Power
+ConditionPathExists=/usr/lib/initrd-release
+DefaultDependencies=no
+StopWhenUnneeded=yes
diff --git a/modules.d/01systemd-ac-power/module-setup.sh b/modules.d/01systemd-ac-power/module-setup.sh
new file mode 100755
index 0000000..c4e7fdd
--- /dev/null
+++ b/modules.d/01systemd-ac-power/module-setup.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# This file is part of dracut.
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Prerequisite check(s) for module.
+check() {
+
+ # Return 255 to only include the module, if another module requires it.
+ return 255
+
+}
+
+# Module dependency requirements.
+depends() {
+
+ # Return 0 to include the dependent module(s) in the initramfs.
+ return 0
+
+}
+
+# Install the required file(s) and directories for the module in the initramfs.
+install() {
+
+ inst_rules "$moddir/99-initrd-power-targets.rules"
+ inst systemd-ac-power
+ inst_simple "$moddir/initrd-on-ac-power.target" "$systemdsystemunitdir/initrd-on-ac-power.target"
+ inst_simple "$moddir/initrd-on-battery-power.target" "$systemdsystemunitdir/initrd-on-battery-power.target"
+
+}