aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2018-12-26 10:21:13 +0100
committerJakob Odersky <jakob@odersky.com>2018-12-26 10:21:13 +0100
commit037cd77d521d36ddcd061d305c05c2538af5716b (patch)
tree5d7f2e4d3c23271b874b076313ea2fde54463a99
parenta686d0105185fb5ec578879fd6160eefb951d83c (diff)
downloaddotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.tar.gz
dotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.tar.bz2
dotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.zip
Refactor systemd service status system
-rw-r--r--home/.config/i3/i3blocks.conf5
-rwxr-xr-xhome/.config/i3/status/backup4
-rwxr-xr-xhome/.config/i3/status/services34
-rw-r--r--home/.config/systemd/user/dbusmonitor.service9
-rw-r--r--home/.config/systemd/user/unmetered-internet.target2
-rwxr-xr-xhome/.local/lib/dbusmonitor (renamed from home/.local/bin/dbusmonitor)6
-rw-r--r--home/.local/share/systemd/user/backup.service (renamed from home/.config/systemd/user/backup.service)4
-rw-r--r--home/.local/share/systemd/user/backup.timer (renamed from home/.config/systemd/user/backup.timer)6
-rw-r--r--home/.local/share/systemd/user/dbusmonitor.service9
-rw-r--r--home/.local/share/systemd/user/internet-metered.target3
-rw-r--r--home/.local/share/systemd/user/internet-unmetered.target3
11 files changed, 65 insertions, 20 deletions
diff --git a/home/.config/i3/i3blocks.conf b/home/.config/i3/i3blocks.conf
index 7a14ac7..ee0b4b7 100644
--- a/home/.config/i3/i3blocks.conf
+++ b/home/.config/i3/i3blocks.conf
@@ -28,7 +28,6 @@ command=/usr/share/i3blocks/$BLOCK_NAME
separator_block_width=20
markup=pango
-
# Volume indicator
#
# The first parameter sets the step (and units to display)
@@ -64,6 +63,10 @@ label=
command=~/.config/i3/status/backup
interval=30
+[services]
+command=~/.config/i3/status/services
+interval=30
+
[disk]
label=
interval=30
diff --git a/home/.config/i3/status/backup b/home/.config/i3/status/backup
index dd27225..c7297f3 100755
--- a/home/.config/i3/status/backup
+++ b/home/.config/i3/status/backup
@@ -16,10 +16,12 @@ function systemd_status() {
fi
}
+
status=""
-status+="$(systemd_status unmetered-internet.target)"
+status+="$(systemd_status internet-unmetered.target)"
status+="$(systemd_status backup.timer)"
status+="$(systemd_status backup.service)"
echo "$status"
echo "$status"
+
diff --git a/home/.config/i3/status/services b/home/.config/i3/status/services
new file mode 100755
index 0000000..88502eb
--- /dev/null
+++ b/home/.config/i3/status/services
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+systemctl="systemctl --user"
+
+function systemd_status() {
+ unit="$1"
+ icon="$2"
+ if $systemctl --quiet is-active "$unit"; then
+ echo "<span foreground=\"#00ff00\">$icon</span>"
+ elif $systemctl --quiet is-failed "$unit"; then
+ echo "<span foreground=\"#ff0000\">$icon</span>"
+ elif ! $systemctl --quiet is-enabled "$unit"; then
+ # note that !enabled includes units that have not been found
+ true
+ else
+ # inactive units: found, not failed and not disabled
+ echo "<span foreground=\"#464f63\">$icon</span>"
+ true
+ fi
+}
+
+
+status=""
+#status='<span foreground="blue" size="x-large">Blue text</span> is <i>cool</i>!'
+#status="      |"
+
+#status=""
+status+="$(systemd_status internet-metered.target ) "
+status+="$(systemd_status backup.timer ) "
+status+="$(systemd_status backup.service ) "
+status+="$(systemd_status backupz.service )"
+
+echo "$status"
+echo "$status"
diff --git a/home/.config/systemd/user/dbusmonitor.service b/home/.config/systemd/user/dbusmonitor.service
deleted file mode 100644
index 0fdd942..0000000
--- a/home/.config/systemd/user/dbusmonitor.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=user service to listen to system dbus sevents
-
-[Service]
-Type=simple
-ExecStart=%h/.local/bin/dbusmonitor
-
-[Install]
-WantedBy=default.target \ No newline at end of file
diff --git a/home/.config/systemd/user/unmetered-internet.target b/home/.config/systemd/user/unmetered-internet.target
deleted file mode 100644
index 4e7907c..0000000
--- a/home/.config/systemd/user/unmetered-internet.target
+++ /dev/null
@@ -1,2 +0,0 @@
-[Unit]
-Description=current connection to the internet is not metered \ No newline at end of file
diff --git a/home/.local/bin/dbusmonitor b/home/.local/lib/dbusmonitor
index f3b3d4a..4e5713d 100755
--- a/home/.local/bin/dbusmonitor
+++ b/home/.local/lib/dbusmonitor
@@ -18,9 +18,11 @@ def check_metered(changed):
if (value == 2 or value == 4):
# start unit (replace any conflicting requests that might have been
# enqueued to systemctl but not yet run)
- systemd.StartUnit("unmetered-internet.target", "replace")
+ systemd.StopUnit("internet-metered.target", "replace")
+ systemd.StartUnit("internet-unmetered.target", "replace")
else:
- systemd.StopUnit("unmetered-internet.target", "replace")
+ systemd.StopUnit("internet-unmetered.target", "replace")
+ systemd.StartUnit("internet-metered.target", "replace")
nm.PropertiesChanged.connect(check_metered)
loop.run()
diff --git a/home/.config/systemd/user/backup.service b/home/.local/share/systemd/user/backup.service
index 3901d64..74e216e 100644
--- a/home/.config/systemd/user/backup.service
+++ b/home/.local/share/systemd/user/backup.service
@@ -1,7 +1,7 @@
[Unit]
Description=copy home data to remote storage
-Requisite=unmetered-internet.target
-After=unmetered-internet.target
+Requisite=internet-unmetered.target
+After=internet-unmetered.target
[Service]
Type=simple
diff --git a/home/.config/systemd/user/backup.timer b/home/.local/share/systemd/user/backup.timer
index cd8c3c3..0843bd7 100644
--- a/home/.config/systemd/user/backup.timer
+++ b/home/.local/share/systemd/user/backup.timer
@@ -1,7 +1,7 @@
[Unit]
Description=run backup script periodically
-Requisite=unmetered-internet.target
-After=unmetered-internet.target
+Requisite=internet-unmetered.target
+After=internet-unmetered.target
[Timer]
OnCalendar=0/2:00:00
@@ -9,4 +9,4 @@ RandomizedDelaySec=10min
Persistent=true
[Install]
-WantedBy=unmetered-internet.target
+WantedBy=internet-unmetered.target
diff --git a/home/.local/share/systemd/user/dbusmonitor.service b/home/.local/share/systemd/user/dbusmonitor.service
new file mode 100644
index 0000000..ff60d31
--- /dev/null
+++ b/home/.local/share/systemd/user/dbusmonitor.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=user service to listen to system dbus events
+
+[Service]
+Type=simple
+ExecStart=%h/.local/lib/dbusmonitor
+
+[Install]
+WantedBy=default.target \ No newline at end of file
diff --git a/home/.local/share/systemd/user/internet-metered.target b/home/.local/share/systemd/user/internet-metered.target
new file mode 100644
index 0000000..8d840a5
--- /dev/null
+++ b/home/.local/share/systemd/user/internet-metered.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=current connection to the internet is metered
+Conflicts=internet-unmetered.target \ No newline at end of file
diff --git a/home/.local/share/systemd/user/internet-unmetered.target b/home/.local/share/systemd/user/internet-unmetered.target
new file mode 100644
index 0000000..db8393f
--- /dev/null
+++ b/home/.local/share/systemd/user/internet-unmetered.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=current connection to the internet is not metered
+Conflicts=internet-metered.target \ No newline at end of file