Add grep's context option to show lines before and after a match

This commit is contained in:
Nick Hammond
2024-05-24 08:59:33 -07:00
parent 10b8c826d8
commit 89994c8b20
12 changed files with 121 additions and 21 deletions

View File

@@ -1,17 +1,17 @@
module Kamal::Commands::App::Logging
def logs(version: nil, since: nil, lines: nil, grep: nil)
def logs(version: nil, since: nil, lines: nil, grep: nil, context: nil)
pipe \
version ? container_id_for_version(version) : current_running_container_id,
"xargs docker logs#{" --since #{since}" if since}#{" --tail #{lines}" if lines} 2>&1",
("grep '#{grep}'" if grep)
("grep '#{grep}'#{" -C #{context}" if context}" if grep)
end
def follow_logs(host:, lines: nil, grep: nil)
def follow_logs(host:, lines: nil, grep: nil, context: nil)
run_over_ssh \
pipe(
current_running_container_id,
"xargs docker logs --timestamps#{" --tail #{lines}" if lines} --follow 2>&1",
(%(grep "#{grep}") if grep)
(%(grep "#{grep}"#{" -C #{context}" if context}) if grep)
),
host: host
end