diff --git a/docker/docker.nu b/docker/docker.nu index 0eb688b..d3275ec 100644 --- a/docker/docker.nu +++ b/docker/docker.nu @@ -1,6 +1,6 @@ export-env { for c in [podman nerdctl docker] { - if not (whereis $c | parse -r '.+: (.+)' | is-empty) { + if not (which $c | is-empty) { let-env docker-cli = $c break } @@ -9,13 +9,28 @@ export-env { export def dp [] { # ^$env.docker-cli ps --all --no-trunc --format='{{json .}}' | jq - ^$env.docker-cli ps -a --format '{"id":"{{.ID}}", "image": "{{.Image}}", "name":"{{.Names}}", "cmd":"{{.Command}}", "port":"{{.Ports}}", "status":"{{.Status}}", "created":"{{.Created}}"}' - | lines - | each {|x| + let cli = $env.docker-cli + if $cli == 'docker' { + ^$cli ps -a --format '{"id":"{{.ID}}", "image": "{{.Image}}", "name":"{{.Names}}", "cmd":{{.Command}}, "port":"{{.Ports}}", "status":"{{.Status}}", "created":"{{.CreatedAt}}"}' + | lines + | each {|x| + let r = ($x | from json) + let t = ($r.created | str substring ',25' | into datetime -f '%Y-%m-%d %H:%M:%S %z' ) - 8hr + $r | upsert created $t + } + } else if $cli == 'podman' { + ^$cli ps -a --format '{"id":"{{.ID}}", "image": "{{.Image}}", "name":"{{.Names}}", "cmd":"{{.Command}}", "port":"{{.Ports}}", "status":"{{.Status}}", "created":"{{.Created}}"}' + | lines + | each {|x| let r = ($x | from json) let t = ($r.created | str substring ',32' | into datetime ) - 8hr $r | upsert created $t - } + } + } else { + ^$cli ps -a + | from ssv + | rename id image cmd created status port name + } } export def di [] {