#!/bin/sh -e # # uptime: condensed uptime of the machine # # Copyright (C) 2009 Raphaël Pinson. # Copyright (C) 2009 Canonical Ltd. # Copyright (C) 2011-2014 Dustin Kirkland # # Authors: Raphaël Pinson # Dustin Kirkland # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . __uptime_detail() { uptime } __uptime() { local u= idle= str= if [ -r /proc/uptime ]; then read u idle < /proc/uptime u=${u%.*} elif [ -x /usr/sbin/sysctl ]; then # MacOS support u=$(/usr/sbin/sysctl -n kern.boottime | cut -f4 -d' ' | cut -d',' -f1) u=$(($(date +%s) - $u)) fi if [ "$u" ]; then if [ "$u" -gt 86400 ]; then str="$(($u / 86400))d$((($u % 86400) / 3600))h" elif [ "$u" -gt 3600 ]; then str="$(($u / 3600))h$((($u % 3600) / 60))m" elif [ "$u" -gt 60 ]; then str="$(($u / 60))m" else str="${u}s" fi else # Last ditch hack str=$(uptime | sed -e "s/.* up *//" -e "s/ *days, */d/" -e "s/:/h/" -e "s/,.*/m/") fi [ -n "$str" ] || return color w b; printf "%s" "${str}"; color -- } # vi: syntax=sh ts=4 noexpandtab