summaryrefslogtreecommitdiff
path: root/.local/bin/svlogtail
diff options
context:
space:
mode:
authorVikas Kushwaha <dev@vikas.rocks>2025-01-10 15:08:05 +0530
committerVikas Kushwaha <dev@vikas.rocks>2025-01-10 15:08:05 +0530
commite02304f014645a01ef6cdd40276997dea58504d9 (patch)
tree49ac70d8b348fa138f681e2fe6fa8f92b512ec9e /.local/bin/svlogtail
parent776f17159bccd342bdc8ab9afdd035196f48d385 (diff)
Cleaning up 'bin' folder.
Diffstat (limited to '.local/bin/svlogtail')
-rwxr-xr-x.local/bin/svlogtail55
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