Skip to content

Commit

Permalink
upgrade to 0.89 (nushell#729)
Browse files Browse the repository at this point in the history
Co-authored-by: nash <[email protected]>
  • Loading branch information
fj0r and nashvi committed Jan 10, 2024
1 parent 0632778 commit 30d386e
Show file tree
Hide file tree
Showing 5 changed files with 190 additions and 152 deletions.
71 changes: 39 additions & 32 deletions modules/comma/comma.nu
Original file line number Diff line number Diff line change
Expand Up @@ -45,21 +45,28 @@ module utils {
$r
}

export def 'os type' [] {
let info = cat /etc/os-release
| lines
| reduce -f {} {|x, acc|
let a = $x | split row '='
$acc | upsert $a.0 ($a.1| str replace -a '"' '')
}
if 'ID_LIKE' in $info {
if not ($info.ID_LIKE | parse -r '(rhel|fedora|redhat)' | is-empty) {
'redhat'
} else {
$info.ID_LIKE
export def distro [] {
match $nu.os-info.name {
'linux' => {
let info = cat /etc/os-release
| lines
| reduce -f {} {|x, acc|
let a = $x | split row '='
$acc | upsert $a.0 ($a.1| str replace -a '"' '')
}
if 'ID_LIKE' in $info {
if not ($info.ID_LIKE | parse -r '(rhel|fedora|redhat)' | is-empty) {
'redhat'
} else {
$info.ID_LIKE
}
} else {
$info.ID
}
}
_ => {
$nu.os-info.name
}
} else {
$info.ID
}
}

Expand Down Expand Up @@ -257,7 +264,7 @@ module run {
}
}

export def main [tbl --watch: bool] {
export def main [tbl --opt: record] {
let n = $in
use tree
use resolve
Expand All @@ -268,7 +275,7 @@ module run {
return
}
let flt = if $_.flt in $n.node { [...$n.filter ...($n.node | get $_.flt)] } else { $n.filter }
let wth = if $watch {
let wth = if $opt.watch {
if $_.wth in $n.node {
[...$n.watch ($n.node | get $_.watch)]
} else {
Expand Down Expand Up @@ -495,7 +502,7 @@ module test {
}


export def run [tbl --watch: bool] {
export def run [tbl --opt: record] {
let argv = $in
let _ = $env.comma_index
use tree
Expand Down Expand Up @@ -540,7 +547,7 @@ module test {
}
}
| tree map $cb $bc
if ($watch | default false) {
if ($opt.watch? | default false) {
use run watches
watches {
$specs | suit
Expand All @@ -552,9 +559,9 @@ module test {
}

module vscode-tasks {
export def merge [args tbl --json: bool] {
export def merge [args tbl --opt: record] {
let c = $args | gen $tbl
if $json {
if $opt.json {
$c | to json
} else {
$c
Expand Down Expand Up @@ -669,10 +676,6 @@ def 'find parent' [] {

def 'comma file' [] {
[
{
condition: {|_, after| not ($after | path join ',.nu' | path exists)}
code: "$env.comma = null"
}
{
condition: {|_, after| $after | path join ',.nu' | path exists}
code: "
Expand Down Expand Up @@ -753,8 +756,7 @@ export-env {
watch_separator: $"(ansi dark_gray)------------------------------(ansi reset)"
}
}
os: (os type)
arch: (uname -m)
distro: (distro)
lg: {$in | lg}
batch: {|mod|
let o = $in
Expand Down Expand Up @@ -850,13 +852,18 @@ def expose [t, a, tbl] {
}

# perform or print
export def --wrapped pp [...x --print] {
export def --wrapped pp [...x --print --as-str] {
if $print or (do -i { $env.comma_index | get $env.comma_index.dry_run } | default false) {
use run
run dry $x --strip
let r = run dry $x --strip
if $as_str {
$r
} else {
print -e $"(ansi light_gray)($r)(ansi reset)(char newline)"
}
} else {
use tree spread
^$x.0 (spread ($x | range 1..))
^$x.0 ...(spread ($x | range 1..))
}
}

Expand Down Expand Up @@ -884,7 +891,7 @@ export def --wrapped , [
if ($args | is-empty) {
if $vscode {
use vscode-tasks
vscode-tasks merge $args (resolve comma) --json $json
vscode-tasks merge $args (resolve comma) --opt {json: $json}
} else if ([$env.PWD, ',.nu'] | path join | path exists) {
^$env.EDITOR ,.nu
} else {
Expand Down Expand Up @@ -921,15 +928,15 @@ export def --wrapped , [
}
} else if $test {
use test
$args | flatten | test run $tbl --watch $watch
$args | flatten | test run $tbl --opt {watch: $watch}
} else if $expose {
expose $args.0 ($args | range 1..) $tbl
} else {
if $print {
$env.comma_index = ($env.comma_index | upsert $env.comma_index.dry_run true)
}
use run
$args | flatten | run $tbl --watch $watch
$args | flatten | run $tbl --opt {watch: $watch}
}
}
}
10 changes: 3 additions & 7 deletions modules/comma/comma_test.nu
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,9 @@ $env.comma = {|_|{
$_.a: {, suit dry_run a }
$_.x: {|r| ($r | lines | get 0) == $env.PWD }
}
yes: {
$_.a: {, -p suit dry_run a }
$_.x: {|r| $r == 'pwd'}
}
ee: {
pp: {
$_.a: {
pp --print aaa bbbb ccccc dddddd eeeeee [
pp --print --as-str aaa bbbb ccccc dddddd eeeeee [
ffffff gggggggggg [
hhhhhhhhh iiiiiiiiii lllllllll
] mmmmmmmmmmmmm nnnnnnnnnnnn
Expand All @@ -48,7 +44,7 @@ $env.comma = {|_|{
jjjjjjjjjjjjj
] oooooooo ppppppppp [qqqqqq [rrrrrr ssssss tttttt] uuuuuu]
}
$_.x: ( '
$_.x: ('
aaa bbbb ccccc dddddd eeeeee \
ffffff gggggggggg \
hhhhhhhhh iiiiiiiiii lllllllll \
Expand Down
62 changes: 32 additions & 30 deletions modules/docker/docker.nu
Original file line number Diff line number Diff line change
Expand Up @@ -32,27 +32,29 @@ def "nu-complete docker ns" [] {
}

# list containers
export def container-process-list [
export def container-list [
-n: string@"nu-complete docker ns"
container?: string@"nu-complete docker containers"
--all(-a)
] {
let cli = $env.docker-cli
if ($container | is-empty) {
let fmt = '{"id":"{{.ID}}", "image": "{{.Image}}", "name":"{{.Names}}", "cmd":{{.Command}}, "port":"{{.Ports}}", "status":"{{.Status}}", "created":"{{.CreatedAt}}"}'
let fmt = if $cli == 'podman' { $fmt | str replace '{{.Command}}' '"{{.Command}}"' | str replace '{{.CreatedAt}}' '{{.Created}}' } else { $fmt }
^$cli ps -a --format $fmt
let all = if $all {[-a]} else {[]}
^$cli ps ...$all --format $fmt
| lines
| each {|x|
let r = $x | from json
let t = $r.created | into datetime
$r | upsert created $t
}
} else {
let r = ^$cli ($n | with-flag -n) inspect $container
let r = ^$cli ...($n | with-flag -n) inspect $container
| from json
| get 0
let image = $r.Image
let img = ^$cli ($n | with-flag -n) inspect $image
let img = ^$cli ...($n | with-flag -n) inspect $image
| from json
| get 0
let imgEnv = $img.Config.Env?
Expand Down Expand Up @@ -89,7 +91,7 @@ export def image-list [
img?: string@"nu-complete docker images"
] {
if ($img | is-empty) {
^$env.docker-cli ($n | with-flag -n) images
^$env.docker-cli ...($n | with-flag -n) images
| from ssv -a
| each {|x|
let size = $x.SIZE | into filesize
Expand All @@ -106,7 +108,7 @@ export def image-list [
}
}
} else {
let r = ^$env.docker-cli ($n | with-flag -n) inspect $img
let r = ^$env.docker-cli ...($n | with-flag -n) inspect $img
| from json
| get 0
let e = $r.Config.Env?
Expand Down Expand Up @@ -167,7 +169,7 @@ export def container-log-namespace [ctn: string@"nu-complete docker containers"
-n: string@"nu-complete docker ns" # namespace
] {
let l = if $l == 0 { [] } else { [--tail $l] }
^$env.docker-cli ($n | with-flag -n) logs -f $l $ctn
^$env.docker-cli ...($n | with-flag -n) logs -f $l $ctn
}

# attach container
Expand All @@ -178,9 +180,9 @@ export def container-attach [
] {
let ns = $n | with-flag -n
if ($args|is-empty) {
^$env.docker-cli $ns exec -it $ctn /bin/sh -c "[ -e /bin/zsh ] && /bin/zsh || [ -e /bin/bash ] && /bin/bash || /bin/sh"
^$env.docker-cli ...$ns exec -it $ctn /bin/sh -c "[ -e /bin/zsh ] && /bin/zsh || [ -e /bin/bash ] && /bin/bash || /bin/sh"
} else {
^$env.docker-cli $ns exec -it $ctn $args
^$env.docker-cli ...$ns exec -it $ctn ...$args
}
}

Expand Down Expand Up @@ -214,61 +216,61 @@ export def container-copy-file [

# remove container
export def container-remove [ctn: string@"nu-complete docker all containers" -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) container rm -f $ctn
^$env.docker-cli ...($n | with-flag -n) container rm -f $ctn
}


# history
export def container-history [img: string@"nu-complete docker images" -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) history --no-trunc $img | from ssv -a
^$env.docker-cli ...($n | with-flag -n) history --no-trunc $img | from ssv -a
}


# save images
export def image-save [-n: string@"nu-complete docker ns" ...img: string@"nu-complete docker images"] {
^$env.docker-cli ($n | with-flag -n) save $img
^$env.docker-cli ...($n | with-flag -n) save $img
}

# load images
export def image-load [-n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) load
^$env.docker-cli ...($n | with-flag -n) load
}

# system prune
export def system-prune [-n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) system prune -f
^$env.docker-cli ...($n | with-flag -n) system prune -f
}

# system prune all
export def system-prune-all [-n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) system prune --all --force --volumes
^$env.docker-cli ...($n | with-flag -n) system prune --all --force --volumes
}

# remove image
export def image-remove [img: string@"nu-complete docker images" -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) rmi $img
^$env.docker-cli ...($n | with-flag -n) rmi $img
}

# add new tag
export def image-tag [from: string@"nu-complete docker images" to: string -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) tag $from $to
^$env.docker-cli ...($n | with-flag -n) tag $from $to
}

# push image
export def image-push [img: string@"nu-complete docker images" -n: string@"nu-complete docker ns" -i] {
let $insecure = if $i {[--insecure-registry]} else {[]}
^$env.docker-cli ($n | with-flag -n) $insecure push $img
^$env.docker-cli ...($n | with-flag -n) $insecure push $img
}

# pull image
export def image-pull [img -n: string@"nu-complete docker ns" -i] {
let $insecure = if $i {[--insecure-registry]} else {[]}
^$env.docker-cli ($n | with-flag -n) $insecure pull $img
^$env.docker-cli ...($n | with-flag -n) $insecure pull $img
}

### list volume
export def volume-list [-n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) volume ls | from ssv -a
^$env.docker-cli ...($n | with-flag -n) volume ls | from ssv -a
}

def "nu-complete docker volume" [] {
Expand All @@ -277,17 +279,17 @@ def "nu-complete docker volume" [] {

# create volume
export def volume-create [name: string -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) volume create
^$env.docker-cli ...($n | with-flag -n) volume create
}

# inspect volume
export def volume-inspect [name: string@"nu-complete docker volume" -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) volume inspect $name
^$env.docker-cli ...($n | with-flag -n) volume inspect $name
}

# remove volume
export def volume-remove [...name: string@"nu-complete docker volume" -n: string@"nu-complete docker ns"] {
^$env.docker-cli ($n | with-flag -n) volume rm $name
^$env.docker-cli ...($n | with-flag -n) volume rm $name
}

### run
Expand Down Expand Up @@ -382,7 +384,7 @@ export def container-create [
echo ([docker $ns run --name $name $args $img $cmd] | flatten | str join ' ')
} else {
let $img = if $env.docker-cli == 'nerdctl' { local_image $img } else { $img }
^$env.docker-cli $ns run --name $name $args $img ($cmd | flatten)
^$env.docker-cli ...$ns run --name $name ...$args $img ...($cmd | flatten)
}
}

Expand All @@ -402,10 +404,10 @@ def "nu-complete registry show" [cmd: string, offset: int] {
[]
}
if ($tag | is-empty) and (not $new) or ($reg | is-empty) {
curl -sSL $auth $"($url)/v2/_catalog"
curl -sSL ...$auth $"($url)/v2/_catalog"
| from json | get repositories
} else {
curl -sSL $auth $"($url)/v2/($reg)/tags/list"
curl -sSL ...$auth $"($url)/v2/($reg)/tags/list"
| from json | get tags
}
}
Expand All @@ -422,11 +424,11 @@ export def "registry show" [
[]
}
if ($reg | is-empty) {
curl -sSL $auth $"($url)/v2/_catalog" | from json | get repositories
curl -sSL ...$auth $"($url)/v2/_catalog" | from json | get repositories
} else if ($tag | is-empty) {
curl -sSL $auth $"($url)/v2/($reg)/tags/list" | from json | get tags
curl -sSL ...$auth $"($url)/v2/($reg)/tags/list" | from json | get tags
} else {
curl -sSL -H 'Accept: application/vnd.oci.image.manifest.v1+json' $auth $"($url)/v2/($reg)/manifests/($tag)" | from json
curl -sSL -H 'Accept: application/vnd.oci.image.manifest.v1+json' ...$auth $"($url)/v2/($reg)/manifests/($tag)" | from json
}
}

Expand Down Expand Up @@ -463,7 +465,7 @@ export def "bud rm" [
buildah rm $id
}

export alias dp = container-process-list
export alias dp = container-list
export alias di = image-list
export alias dl = container-log
export alias dln = container-log-namespace
Expand Down
Loading

0 comments on commit 30d386e

Please sign in to comment.