From 734442a10b4470dab6e41214592f7b7870c27f83 Mon Sep 17 00:00:00 2001 From: Christian Korber Date: Wed, 3 Jul 2024 13:55:43 +0200 Subject: [PATCH] luci-mod-status: display log_file in status if defined Commit includes wrapper syslog in /usr/libexec. If a log file is configured, the output of this file is displayed. Otherwise the output of logread is displayed. Signed-off-by: Christian Korber --- .../resources/view/status/syslog.js | 7 +++---- .../root/usr/libexec/syslog-wrapper | 21 +++++++++++++++++++ .../usr/share/rpcd/acl.d/luci-mod-status.json | 5 +---- 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100755 modules/luci-mod-status/root/usr/libexec/syslog-wrapper diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js index 2aa3c46093..83a42cdbbf 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js @@ -7,12 +7,11 @@ return view.extend({ retrieveLog: async function() { return Promise.all([ - L.resolveDefault(fs.stat('/sbin/logread'), null), - L.resolveDefault(fs.stat('/usr/sbin/logread'), null) + L.resolveDefault(fs.stat('/usr/libexec/syslog-wrapper'), null) ]).then(function(stat) { - var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null; + var logger = stat[0].path; - return fs.exec_direct(logger, [ '-e', '^' ]).then(logdata => { + return fs.exec_direct(logger).then(logdata => { const loglines = logdata.trim().split(/\n/); return { value: loglines.join('\n'), rows: loglines.length + 1 }; }).catch(function(err) { diff --git a/modules/luci-mod-status/root/usr/libexec/syslog-wrapper b/modules/luci-mod-status/root/usr/libexec/syslog-wrapper new file mode 100755 index 0000000000..75af831078 --- /dev/null +++ b/modules/luci-mod-status/root/usr/libexec/syslog-wrapper @@ -0,0 +1,21 @@ +#!/bin/sh + +. /lib/functions.sh + +main() { + local log_file + + log_file="$(uci_get system @system[0] log_file "")" + if [ -f "$log_file" ]; then + cat "$log_file" + return + fi + + if [ -f /sbin/logread ]; then + /sbin/logread -e ^ + else + /usr/sbin/logread -e ^ + fi +} + +main diff --git a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json index 45dd7d7d9e..200631e97b 100644 --- a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json +++ b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json @@ -32,10 +32,7 @@ "cgi-io": [ "exec" ], "file": { "/bin/dmesg -r": [ "exec" ], - "/sbin/logread": [ "stat" ], - "/sbin/logread -e ^": [ "exec" ], - "/usr/sbin/logread": [ "stat" ], - "/usr/sbin/logread -e ^": [ "exec" ] + "/usr/libexec/syslog-wrapper": [ "exec" ] }, "ubus": { "file": [ "stat" ] -- 2.30.2