summaryrefslogtreecommitdiffstats
path: root/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'systemd')
-rwxr-xr-xsystemd/pacman-offline17
-rw-r--r--systemd/pacman-offline.service14
2 files changed, 31 insertions, 0 deletions
diff --git a/systemd/pacman-offline b/systemd/pacman-offline
new file mode 100755
index 0000000..9764666
--- /dev/null
+++ b/systemd/pacman-offline
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+# verify this is for us or exit gracefully
+if [ "$(readlink '/system-update')" != '/var/cache/pacman/pkg' ]; then
+ exit 0
+fi
+
+# install updates
+pacman -Su --noconfirm
+
+# remove triggering symlink
+rm -f /system-update
+
+# reboot
+systemctl reboot
diff --git a/systemd/pacman-offline.service b/systemd/pacman-offline.service
new file mode 100644
index 0000000..3b698a3
--- /dev/null
+++ b/systemd/pacman-offline.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Offline system update with pacman
+ConditionPathExists=/system-update
+DefaultDependencies=false
+Requires=sysinit.target dbus.socket
+After=sysinit.target dbus.socket
+Before=shutdown.target system-update.target
+OnFailure=reboot.target
+
+[Service]
+Type=oneshot
+StandardOutput=tty
+StandardError=tty
+ExecStart=/usr/lib/systemd/scripts/pacman-offline