1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-08-02 15:17:47 +00:00

dp for docker ps support docker and podman (#421)

* dp for `docker ps` support docker and podman

* dp for `docker ps` support nerdctl

---------

Co-authored-by: agent <agent@nuc>
This commit is contained in:
fj0r 2023-03-23 19:50:39 +08:00 committed by GitHub
parent 1884426d79
commit e7976c5cc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,6 @@
export-env { export-env {
for c in [podman nerdctl docker] { 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 let-env docker-cli = $c
break break
} }
@ -9,13 +9,28 @@ export-env {
export def dp [] { export def dp [] {
# ^$env.docker-cli ps --all --no-trunc --format='{{json .}}' | jq # ^$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}}"}' 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 | lines
| each {|x| | each {|x|
let r = ($x | from json) let r = ($x | from json)
let t = ($r.created | str substring ',32' | into datetime ) - 8hr let t = ($r.created | str substring ',32' | into datetime ) - 8hr
$r | upsert created $t $r | upsert created $t
} }
} else {
^$cli ps -a
| from ssv
| rename id image cmd created status port name
}
} }
export def di [] { export def di [] {