diff options
| author | John Titor <50095635+JohnRTitor@users.noreply.github.com> | 2024-05-10 12:16:30 +0530 |
|---|---|---|
| committer | John Titor <50095635+JohnRTitor@users.noreply.github.com> | 2024-05-10 12:16:30 +0530 |
| commit | 4cd64ff0b907f8d8d6503bcb7c858ca25494d1cb (patch) | |
| tree | ba7419e774eed9bf687545d257d6709d1ed02ba3 /config/hypr/scripts/UptimeNixOS.sh | |
| parent | 4b44f8eceb31ed13453a5ba5f0a735d52d92e065 (diff) | |
hyprlock: use UptimeNixOS script to get the output if uptime -p not available
Diffstat (limited to 'config/hypr/scripts/UptimeNixOS.sh')
| -rw-r--r-- | config/hypr/scripts/UptimeNixOS.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/config/hypr/scripts/UptimeNixOS.sh b/config/hypr/scripts/UptimeNixOS.sh new file mode 100644 index 00000000..654ae2c8 --- /dev/null +++ b/config/hypr/scripts/UptimeNixOS.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Script parses /proc/uptime to get the system uptime +# and prints it in a human-readable format +# This is a workaround for system where `uptime` command is taken from coreutils +# where `uptime -p` is not supported + +if [[ -r /proc/uptime ]]; then + s=$(< /proc/uptime) + s=${s/.*} +else + echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2 + exit 1 +fi + +d="$((s / 60 / 60 / 24)) days" +h="$((s / 60 / 60 % 24)) hours" +m="$((s / 60 % 60)) minutes" + +# Remove plural if < 2. +((${d/ *} == 1)) && d=${d/s} +((${h/ *} == 1)) && h=${h/s} +((${m/ *} == 1)) && m=${m/s} + +# Hide empty fields. +((${d/ *} == 0)) && unset d +((${h/ *} == 0)) && unset h +((${m/ *} == 0)) && unset m + +uptime=${d:+$d, }${h:+$h, }$m +uptime=${uptime%', '} +uptime=${uptime:-$s seconds} + +echo "up $uptime" |
