From 4cd64ff0b907f8d8d6503bcb7c858ca25494d1cb Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Fri, 10 May 2024 12:16:30 +0530 Subject: hyprlock: use UptimeNixOS script to get the output if uptime -p not available --- config/hypr/scripts/UptimeNixOS.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 config/hypr/scripts/UptimeNixOS.sh (limited to 'config/hypr/scripts') 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" -- cgit v1.2.3