diff --git a/docker/docker.nu b/docker/docker.nu index d3275ec..270632d 100644 --- a/docker/docker.nu +++ b/docker/docker.nu @@ -15,7 +15,7 @@ export def dp [] { | 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 + let t = ($r.created | str substring ..25 | into datetime -f '%Y-%m-%d %H:%M:%S %z' ) $r | upsert created $t } } else if $cli == 'podman' { @@ -23,7 +23,7 @@ export def dp [] { | lines | each {|x| let r = ($x | from json) - let t = ($r.created | str substring ',32' | into datetime ) - 8hr + let t = ($r.created | str substring ..32 | into datetime ) $r | upsert created $t } } else { @@ -94,7 +94,7 @@ export def da [ } def "nu-complete docker cp" [cmd: string, offset: int] { - let argv = ($cmd | str substring [0 $offset] | split row ' ') + let argv = ($cmd | str substring ..$offset | split row ' ') let p = if ($argv | length) > 2 { $argv | get 2 } else { $argv | get 1 } let ctn = ( ^$env.docker-cli ps @@ -107,10 +107,10 @@ def "nu-complete docker cp" [cmd: string, offset: int] { | lines | each {|x| $"($n | get 0):($x)"} } else { - let files = do -i { + let files = (do -i { ls -a $"($p)*" | each {|x| if $x.type == dir { $"($x.name)/"} else { $x.name }} - } + }) $files | append $ctn } } @@ -207,7 +207,7 @@ def "nu-complete docker run sshkey" [ctx: string, pos: int] { } def "nu-complete docker run proxy" [] { - let hostaddr = do -i {hostname -I | split row ' ' | get 0} + let hostaddr = (do -i { hostname -I | split row ' ' | get 0 }) [$"http://($hostaddr):7890" $"http://localhost:7890"] } @@ -283,7 +283,7 @@ export def dx [ ng: 'ng:/srv' pg: 'pg:/var/lib/postgresql/data' } - let c = do -i {$__dx_cache | transpose k v | where {|x| $dx | str contains $x.k} | get v.0} + let c = (do -i {$__dx_cache | transpose k v | where {|x| $dx | str contains $x.k} | get v.0}) let c = if ($c|is-empty) { '' } else if $mount_cache { @@ -308,9 +308,9 @@ export def dx [ def "nu-complete registry list" [cmd: string, offset: int] { let cmd = ($cmd | split row ' ') - let url = do -i { $cmd | get 2 } - let reg = do -i { $cmd | get 3 } - let tag = do -i { $cmd | get 4 } + let url = (do -i { $cmd | get 2 }) + let reg = (do -i { $cmd | get 3 }) + let tag = (do -i { $cmd | get 4 }) if ($reg|is-empty) { if ($env | has 'REGISTRY_TOKEN') { http get -H [authorization $"Basic ($env.REGISTRY_TOKEN)"] $"($url)/v2/_catalog" diff --git a/git/git.nu b/git/git.nu index ac7ef1e..36983b0 100644 --- a/git/git.nu +++ b/git/git.nu @@ -4,7 +4,7 @@ export def _git_stat [n] { | lines | reduce -f { c: '', r: [] } {|it, acc| if ($it | str starts-with '»¦«') { - $acc | upsert c ($it | str substring '6,') + $acc | upsert c ($it | str substring 6.. ) } else if ($it | find -r '[0-9]+ file.+change' | is-empty) { $acc } else { @@ -20,7 +20,7 @@ export def _git_stat [n] { let col = if ($i.col | str starts-with 'file') { 'file' } else { - $i.col | str substring ',3' + $i.col | str substring ..3 } let num = ($i.num | into int) $a | upsert $col $num @@ -37,14 +37,14 @@ export def _git_log [v num] { let stat = if $v { _git_stat $num } else { {} } - let r = do -i { + let r = (do -i { git log -n $num --pretty=%h»¦«%s»¦«%aN»¦«%aE»¦«%aD | lines | split column "»¦«" sha message author email date | each {|x| ($x| upsert date ($x.date | into datetime))} - } + }) if $v { - $r | merge { $stat } | reverse + $r | merge $stat | reverse } else { $r | reverse } @@ -54,6 +54,7 @@ def "nu-complete git log" [] { git log -n 32 --pretty=%h»¦«%s | lines | split column "»¦«" value description + | each {|x| $x | update value $"`($x.value)`"} } export def glg [ @@ -113,7 +114,12 @@ export def gm [branch:string@"nu-complete git branches"] { } def git_main_branch [] { - git remote show origin | lines | str trim | find 'HEAD branch: ' | first | split words | last + git remote show origin + | lines + | str trim + | find --regex 'HEAD .*?[:: ].+' + | first + | str replace 'HEAD .*?[:: ](.+)' '$1' } def git_current_branch [] { diff --git a/kubernetes/kubernetes.nu b/kubernetes/kubernetes.nu index 546ece5..9ef8c23 100644 --- a/kubernetes/kubernetes.nu +++ b/kubernetes/kubernetes.nu @@ -23,9 +23,9 @@ export def "parse cmd" [] { } export def ensure-index [index path action] { - let ts = do -i { ls $path | sort-by modified | reverse | get 0.modified } + let ts = (do -i { ls $path | sort-by modified | reverse | get 0.modified }) if ($ts | is-empty) { return false } - let tc = do -i { ls $index | get 0.modified } + let tc = (do -i { ls $index | get 0.modified }) if not (($index | path exists) and ($ts < $tc)) { mkdir (dirname $index) do $action @@ -75,9 +75,9 @@ export def "kube-config" [] { def "nu-complete kube ctx" [] { let k = (kube-config) let cache = $'($env.HOME)/.cache/nu-complete/k8s/(basename $k.path).json' - ensure-index $cache $k.path { + ensure-index $cache $k.path { || let clusters = ($k.data | get clusters | select name cluster.server) - let data = ( $k.data + let data = ($k.data | get contexts | reduce -f {completion:[], mx_ns: 0, mx_cl: 0} {|x, a| let ns = (if ('namespace' in ($x.context|columns)) { $x.context.namespace } else { '' }) @@ -172,7 +172,7 @@ def "nu-complete kube def" [] { def "nu-complete kube res" [context: string, offset: int] { let ctx = ($context | parse cmd) let def = ($ctx | get args.1) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } kubectl get $ns $def | from ssv -a | get NAME } @@ -251,16 +251,16 @@ export def kgno [] { ### pods def "nu-complete kube pods" [context: string, offset: int] { let ctx = ($context | parse cmd) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } kubectl get $ns pods | from ssv -a | get NAME } def "nu-complete kube ctns" [context: string, offset: int] { let ctx = ($context | parse cmd) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } - let ctn = do -i { $ctx | get '-c' } + let ctn = (do -i { $ctx | get '-c' }) let ctn = if ($ctn|is-empty) { [] } else { [-c $ctn] } let pod = ($ctx | get args.1) kubectl get $ns pod $pod -o jsonpath={.spec.containers[*].name} | split row ' ' @@ -355,11 +355,11 @@ export def kpf [ } def "nu-complete kube cp" [cmd: string, offset: int] { - let ctx = ($cmd | str substring [0 $offset] | parse cmd) + let ctx = ($cmd | str substring ..$offset | parse cmd) let p = ($ctx.args | get (($ctx.args | length) - 1)) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } - let c = do -i { $ctx | get '-c' } + let c = (do -i { $ctx | get '-c' }) let c = if ($c|is-empty) { [] } else { [-c $c] } let ctn = (kubectl get pod $ns | from ssv -a | each {|x| {description: $x.READY value: $"($x.NAME):" }}) let n = ($p | split row ':') @@ -368,9 +368,9 @@ def "nu-complete kube cp" [cmd: string, offset: int] { | lines | each {|x| $"($n | get 0):($x)"} } else { - let files = do -i { ls -a $"($p)*" + let files = (do -i { ls -a $"($p)*" | each {|x| if $x.type == dir { $"($x.name)/"} else { $x.name }} - } + }) $files | append $ctn } } @@ -388,7 +388,7 @@ export def kcp [ ### service def "nu-complete kube service" [context: string, offset: int] { let ctx = ($context | parse cmd) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } kubectl get $ns services | from ssv -a | get NAME } @@ -412,7 +412,7 @@ export def kdels [svc: string@"nu-complete kube service", -n: string@"nu-complet ### deployments def "nu-complete kube deployments" [context: string, offset: int] { let ctx = ($context | parse cmd) - let ns = do -i { $ctx | get '-n' } + let ns = (do -i { $ctx | get '-n' }) let ns = if ($ns|is-empty) { [] } else { [-n $ns] } kubectl get $ns deployments | from ssv -a | get NAME } @@ -479,8 +479,8 @@ export def ktp [-n: string@"nu-complete kube ns"] { kubectl top pod $n | from ssv -a | rename name cpu mem | each {|x| { name: $x.name - cpu: ($x.cpu| str substring ',-1' | into decimal) - mem: ($x.mem | str substring ',-2' | into decimal) + cpu: ($x.cpu| str substring ..-1 | into decimal) + mem: ($x.mem | str substring ..-2 | into decimal) } } } @@ -489,8 +489,8 @@ export def ktpa [] { | each {|x| { namespace: $x.namespace name: $x.name - cpu: ($x.cpu| str substring ',-1' | into decimal) - mem: ($x.mem | str substring ',-2' | into decimal) + cpu: ($x.cpu| str substring ..-1 | into decimal) + mem: ($x.mem | str substring ..-2 | into decimal) } } } @@ -499,10 +499,10 @@ export def ktn [] { kubectl top node | from ssv -a | rename name cpu pcpu mem pmem | each {|x| { name: $x.name - cpu: ($x.cpu| str substring ',-1' | into decimal) - cpu%: (($x.pcpu| str substring ',-1' | into decimal) / 100) - mem: ($x.mem | str substring ',-2' | into decimal) - mem%: (($x.pmem | str substring ',-1' | into decimal) / 100) + cpu: ($x.cpu| str substring ..-1 | into decimal) + cpu%: (($x.pcpu| str substring ..-1 | into decimal) / 100) + mem: ($x.mem | str substring ..-2 | into decimal) + mem%: (($x.pmem | str substring ..-1 | into decimal) / 100) } } } diff --git a/ssh/ssh.nu b/ssh/ssh.nu index 13281c7..9dbfe8d 100644 --- a/ssh/ssh.nu +++ b/ssh/ssh.nu @@ -1,7 +1,7 @@ export def ensure-index [index path action] { - let ts = do -i { ls $path | sort-by modified | reverse | get 0.modified } + let ts = (do -i { ls $path | sort-by modified | reverse | get 0.modified }) if ($ts | is-empty) { return false } - let tc = do -i { ls $index | get 0.modified } + let tc = (do -i { ls $index | get 0.modified }) if not (($index | path exists) and ($ts < $tc)) { mkdir (dirname $index) do $action @@ -49,7 +49,7 @@ def fmt-group [p] { def "ssh-hosts" [] { let cache = $'($env.HOME)/.cache/nu-complete/ssh.json' - ensure-index $cache ~/.ssh/**/* { + ensure-index $cache ~/.ssh/**/* { || let data = (ssh-list | each {|x| let uri = $"($x.User)@($x.HostName):($x.Port)" { @@ -101,7 +101,7 @@ export extern main [ def "nu-complete scp" [cmd: string, offset: int] { - let argv = ($cmd | str substring [0 $offset] | split row ' ') + let argv = ($cmd | str substring ..$offset | split row ' ') let p = if ($argv | length) > 2 { $argv | get 2 } else { $argv | get 1 } let ssh = (ssh-hosts | get completion | each {|x| {value: $"($x.value):" description: $x.uri} } @@ -112,10 +112,10 @@ def "nu-complete scp" [cmd: string, offset: int] { | lines | each {|x| $"($n | get 0):($x)"} } else { - let files = do -i { + let files = (do -i { ls -a $"($p)*" | each {|x| if $x.type == dir { $"($x.name)/"} else { $x.name }} - } + }) $files | append $ssh } }