summarylogtreecommitdiffstats
path: root/system76-firmware-daemon.install
diff options
context:
space:
mode:
Diffstat (limited to 'system76-firmware-daemon.install')
-rw-r--r--system76-firmware-daemon.install57
1 files changed, 57 insertions, 0 deletions
diff --git a/system76-firmware-daemon.install b/system76-firmware-daemon.install
new file mode 100644
index 000000000000..89f0bc8341cc
--- /dev/null
+++ b/system76-firmware-daemon.install
@@ -0,0 +1,57 @@
+_service="system76-firmware-daemon.service"
+
+_stop_service() {
+ /usr/bin/systemctl stop $_service &>/dev/null
+}
+
+_disable_service() {
+ /usr/bin/systemctl disable $_service &>/dev/null
+ /usr/bin/systemctl reset-failed $_service &>/dev/null
+}
+
+_restore_service() {
+ /usr/bin/systemctl -q is-enabled $service &>/dev/null && \
+ /usr/bin/systemctl restart $service &>/dev/null
+}
+
+_package_message() {
+ cat <<-EOT
+
+ The System76 Firmware package provides the following system services:
+
+ system76-firmware-daemon.service -- System76 service that exposes a DBUS API for handling firmware updates.
+
+ EOT
+}
+
+post_install() {
+ /usr/bin/systemctl daemon-reload &>/dev/null
+
+ _package_message
+}
+
+pre_upgrade() {
+ _stop_service
+}
+
+post_upgrade() {
+ /usr/bin/systemctl daemon-reload &>/dev/null
+
+ _restore_service
+ _package_message
+}
+
+pre_remove() {
+ _stop_service
+ _disable_service
+}
+
+post_remove() {
+ /usr/bin/systemctl daemon-reload &>/dev/null
+
+ cat <<-EOT
+
+ Be sure to stop and disable all running System76 user services.
+
+ EOT
+}