diff options
author | Jakob Odersky <jakob@odersky.com> | 2018-12-26 10:21:13 +0100 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2018-12-26 10:21:13 +0100 |
commit | 037cd77d521d36ddcd061d305c05c2538af5716b (patch) | |
tree | 5d7f2e4d3c23271b874b076313ea2fde54463a99 | |
parent | a686d0105185fb5ec578879fd6160eefb951d83c (diff) | |
download | dotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.tar.gz dotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.tar.bz2 dotfiles-037cd77d521d36ddcd061d305c05c2538af5716b.zip |
Refactor systemd service status system
-rw-r--r-- | home/.config/i3/i3blocks.conf | 5 | ||||
-rwxr-xr-x | home/.config/i3/status/backup | 4 | ||||
-rwxr-xr-x | home/.config/i3/status/services | 34 | ||||
-rw-r--r-- | home/.config/systemd/user/dbusmonitor.service | 9 | ||||
-rw-r--r-- | home/.config/systemd/user/unmetered-internet.target | 2 | ||||
-rwxr-xr-x | home/.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.service | 9 | ||||
-rw-r--r-- | home/.local/share/systemd/user/internet-metered.target | 3 | ||||
-rw-r--r-- | home/.local/share/systemd/user/internet-unmetered.target | 3 |
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 |