summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-12-17 15:00:24 +0100
committerJo-Philipp Wich <jo@mein.io>2022-12-17 15:01:46 +0100
commita27d2dbc32785c3389ea77a26714e7f6c67c9185 (patch)
tree578eed51469131c4ca9bdfe16894f964fc636453
parent05194712bb2119b79041f256c44e35a044594f75 (diff)
luci-base, luci-mod-status: expose LuCI version via ubus
Instead of scraping the LuCI version from Lua sources, fetch it via ubus in order to be independent from the Lua runtime. Fixes: #6154 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--modules/luci-base/root/usr/share/rpcd/ucode/luci7
-rw-r--r--modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js13
-rw-r--r--modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json2
3 files changed, 15 insertions, 7 deletions
diff --git a/modules/luci-base/root/usr/share/rpcd/ucode/luci b/modules/luci-base/root/usr/share/rpcd/ucode/luci
index e237979352..a30e276b80 100644
--- a/modules/luci-base/root/usr/share/rpcd/ucode/luci
+++ b/modules/luci-base/root/usr/share/rpcd/ucode/luci
@@ -7,6 +7,7 @@ import { stdin, access, dirname, basename, open, popen, glob, lsdir, readfile, r
import { cursor } from 'uci';
import { init_list, init_index, init_enabled, init_action, conntrack_list, process_list } from 'luci.sys';
+import { revision, branch } from 'luci.version';
import { statvfs } from 'luci.core';
import timezones from 'luci.zoneinfo';
@@ -17,6 +18,12 @@ function shellquote(s) {
}
const methods = {
+ getVersion: {
+ call: function(request) {
+ return { revision, branch };
+ }
+ },
+
getInitList: {
args: { name: 'name' },
call: function(request) {
diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
index ae7efa3e75..45f7b4acae 100644
--- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
+++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
@@ -3,6 +3,11 @@
'require fs';
'require rpc';
+var callLuciVersion = rpc.declare({
+ object: 'luci',
+ method: 'getVersion'
+});
+
var callSystemBoard = rpc.declare({
object: 'system',
method: 'board'
@@ -20,7 +25,7 @@ return baseclass.extend({
return Promise.all([
L.resolveDefault(callSystemBoard(), {}),
L.resolveDefault(callSystemInfo(), {}),
- fs.lines('/usr/lib/lua/luci/version.lua')
+ L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' })
]);
},
@@ -29,11 +34,7 @@ return baseclass.extend({
systeminfo = data[1],
luciversion = data[2];
- luciversion = luciversion.filter(function(l) {
- return l.match(/^\s*(luciname|luciversion)\s*=/);
- }).map(function(l) {
- return l.replace(/^\s*\w+\s*=\s*['"]([^'"]+)['"].*$/, '$1');
- }).join(' ');
+ luciversion = luciversion.branch + ' ' + luciversion.revision;
var datestr = null;
diff --git a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json
index a9ae0cef49..7c2cd0998f 100644
--- a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json
+++ b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json
@@ -5,10 +5,10 @@
"file": {
"/proc/sys/net/netfilter/nf_conntrack_count": [ "read" ],
"/proc/sys/net/netfilter/nf_conntrack_max": [ "read" ],
- "/usr/lib/lua/luci/version.lua": [ "read" ],
"/www/luci-static/resources/view/status/include": [ "list" ]
},
"ubus": {
+ "luci": [ "getVersion" ],
"file": [ "list", "read" ],
"system": [ "board", "info" ]
}