_yt() {
local -r base_dir="$1"
- local -r opts="$2"
- local -r uri="$3"
+ local -r uri="$2"
+ local -r opts="$3"
local -r id=$(youtube-dlc --get-id "$uri")
local -r title=$(youtube-dlc --get-title "$uri" | sed 's/[^A-Za-z0-9._-]/_/g')
yt_audio() {
local -r uri="$1"
- _yt "${DIR_YOUTUBE_AUDIO}/individual" '-f 140' "$uri"
+ _yt "${DIR_YOUTUBE_AUDIO}/individual" "$uri" '-f 140'
}
yt_video() {
'
}
-motd_batt() {
+status_batt() {
case "$(uname)" in
'Linux')
- upower --dump \
- | awk '
- /^Device:[ \t]+/ {
- device["path"] = $2
- next
- }
-
- / battery/ && device["path"] {
- device["is_battery"] = 1
- next
- }
-
- / percentage:/ && device["is_battery"] {
- device["battery_percentage"] = $2
- sub("%$", "", device["battery_percentage"])
- next
- }
-
- /^$/ {
- if (device["is_battery"] && device["path"] == "/org/freedesktop/UPower/devices/DisplayDevice")
- print device["battery_percentage"], 100, "batt"
- delete device
- }
- '
+ if which upower > /dev/null
+ then
+ upower --dump \
+ | awk '
+ /^Device:[ \t]+/ {
+ device["path"] = $2
+ next
+ }
+
+ / battery/ && device["path"] {
+ device["is_battery"] = 1
+ next
+ }
+
+ / percentage:/ && device["is_battery"] {
+ device["battery_percentage"] = $2
+ sub("%$", "", device["battery_percentage"])
+ next
+ }
+
+ /^$/ {
+ if (device["is_battery"] && device["path"] == "/org/freedesktop/UPower/devices/DisplayDevice")
+ print device["battery_percentage"], 100, "batt"
+ delete device
+ }
+ '
+ fi
;;
esac
}
awk -v unit="$1" '{printf "%s%s\n", unit, $0}'
}
-motd() {
+status() {
local -r indent_unit=' '
uname -srvmo
(
free | awk '$1 == "Mem:" {print $3, $2, "mem"}'
df ~ | awk 'NR == 2 {print $3, $3 + $4, "disk"}'
- motd_batt
+ status_batt
) \
| bar_gauge -v width=60 -v pct=1 \
| column -t \
printf '%smem by proc\n' "$indent_unit"
ps -eo rss,cmd \
- | awk '
+ | awk -v total="$(free | awk '$1 == "Mem:" {print $2; exit}')" '
NR > 1 {
rss = $1
cmd = $2
n = split(cmd, path, "/") # _may_ be a path
proc = path[n]
- total += rss
- by_proc[proc] = rss
+ by_proc[proc] += rss
}
END {
| sort -u \
| xargs \
| column -t
+
+ # TODO: iptables summary
}
ssh_invalid_attempts_from() {
split($5, prog, "[")
sub(":$", "", prog[1]) # if there were no [], than : will is left behind
print prog[1]
- }' /var/log/syslog \
+ }' /var/log/syslog /var/log/syslog.1 \
| awk '
{
n = split($1, path, "/") # prog may be in path form
for (prog in count)
print count[prog], total, prog
}' \
+ | sort -n -k 1 \
| bar_gauge -v num=1 -v ch_right=' ' -v ch_left=' ' -v ch_blank=' ' \
| column -t
}