mirror of https://github.com/tstack/lnav
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1003 B
Plaintext
32 lines
1003 B
Plaintext
#
|
|
# @synopsis: docker-url-handler
|
|
# @description: Internal script to handle opening docker URLs
|
|
#
|
|
|
|
;SELECT jget(url, '/host') AS docker_hostname,
|
|
jget(url, '/path') AS docker_path
|
|
FROM (SELECT parse_url($1) AS url)
|
|
|
|
;SELECT CASE
|
|
$docker_hostname
|
|
WHEN 'compose' THEN (
|
|
SELECT group_concat(
|
|
printf(
|
|
':sh --name=%s docker compose logs --no-log-prefix -f %s',
|
|
compose_services.key,
|
|
compose_services.key
|
|
),
|
|
char(10)
|
|
) AS cmds
|
|
FROM fstat(substr($docker_path, 2)),
|
|
json_each(yaml_to_json(data), '$.services') as compose_services
|
|
)
|
|
ELSE CASE
|
|
$docker_path
|
|
WHEN '/' THEN ':sh docker logs -f ' || $docker_hostname
|
|
ELSE ':sh docker exec ' || $docker_hostname || ' tail -n +0 -F "' || $docker_path || '"'
|
|
END
|
|
END AS cmds
|
|
|
|
:eval ${cmds}
|