diff options
author | Vikas Kushwaha <dev@vikas.rocks> | 2025-01-10 15:08:05 +0530 |
---|---|---|
committer | Vikas Kushwaha <dev@vikas.rocks> | 2025-01-10 15:08:05 +0530 |
commit | e02304f014645a01ef6cdd40276997dea58504d9 (patch) | |
tree | 49ac70d8b348fa138f681e2fe6fa8f92b512ec9e /.local/bin/svlogtail | |
parent | 776f17159bccd342bdc8ab9afdd035196f48d385 (diff) |
Cleaning up 'bin' folder.
Diffstat (limited to '.local/bin/svlogtail')
-rwxr-xr-x | .local/bin/svlogtail | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/.local/bin/svlogtail b/.local/bin/svlogtail new file mode 100755 index 0000000..1dda671 --- /dev/null +++ b/.local/bin/svlogtail @@ -0,0 +1,55 @@ +#!/bin/sh +# From socklog-void +# https://github.com/void-linux/socklog-void/blob/master/svlogtail + +usage () { + cat <<-'EOF' + svlogtail [-f] [LOG...] - show svlogd logs conveniently + + Without arguments, show current logs of all services, uniquely. + With arguments, show all logs of mentioned services + + With -f, follow log output. + EOF +} + +globexist() { + [ -f "$1" ] +} + +IFS=' +' + +fflag=false +if [ "$1" = -f ]; then + shift + fflag=true +fi + +if [ $# = 0 ]; then + cat /var/log/socklog/*/current | sort -u + if $fflag; then + tail -Fq -n0 /var/log/socklog/*/current | uniq + fi +else + old= + cur= + for log; do + case "$log" in + -*) usage; exit 1;; + esac + if [ -d /var/log/socklog/$log ]; then + if globexist /var/log/socklog/$log/*.[us]; then + old="$old$IFS/var/log/socklog/$log/*.[us]" + fi + cur="$cur$IFS/var/log/socklog/$log/current" + else + echo "no logs for $log" 1>&2 + exit 1 + fi + done + cat $old $cur | sort + if $fflag; then + tail -Fq -n0 $cur + fi +fi |