[journald] add url handler

master
Tim Stack 1 month ago
parent 1b73d0c0a1
commit 4d87676a2a

@ -233,6 +233,7 @@ list(APPEND GEN_SRCS default-config.h default-config.cc)
set(BUILTIN_LNAV_SCRIPTS
scripts/dhclient-summary.lnav
scripts/docker-url-handler.lnav
scripts/journald-url-handler.lnav
scripts/lnav-pop-view.lnav
scripts/partition-by-boot.lnav
scripts/piper-url-handler.lnav

@ -96,14 +96,17 @@
"docker": {
"handler": "docker-url-handler"
},
"podman": {
"handler": "docker-url-handler"
},
"docker-compose": {
"handler": "docker-compose-url-handler"
},
"journald": {
"handler": "journald-url-handler"
},
"piper": {
"handler": "piper-url-handler"
},
"podman": {
"handler": "docker-url-handler"
}
}
}

@ -0,0 +1,32 @@
#
# @synopsis: journald-url-handler
# @description: Internal script to handle opening journald URLs
#
;SELECT
jget(url, '/scheme') AS jscheme,
jget(url, '/host') AS jhost,
jget(url, '/parameters') as jparams
FROM (SELECT parse_url(
CASE WHEN regexp('^journald://(?:\?|$)', $1) THEN
'journald://localhost/' || substr($1, 11)
END) AS url
)
;SELECT
printf(':sh journalctl --output=json -f %s', (
SELECT group_concat(
CASE length(key)
WHEN 1 THEN
'-'
ELSE
'--'
END ||
key ||
'=' || value,
' ')
FROM json_each($jparams)
)
) AS cmds
:eval ${cmds}

@ -2,6 +2,7 @@
BUILTIN_LNAVSCRIPTS = \
$(srcdir)/scripts/dhclient-summary.lnav \
$(srcdir)/scripts/docker-url-handler.lnav \
$(srcdir)/scripts/journald-url-handler.lnav \
$(srcdir)/scripts/lnav-pop-view.lnav \
$(srcdir)/scripts/partition-by-boot.lnav \
$(srcdir)/scripts/piper-url-handler.lnav \

Loading…
Cancel
Save