elvish_config/aliases/get-uid.elv

50 lines
878 B
Plaintext

use re
use str
fn -value [v]{
local:p = (re:find '^(\d+)\((\w+)\)$' $v)
if (and (has-key $p groups) (== (count $p[groups]) 3)) {
put [
&number=$p[groups][1][text]
&text=$p[groups][2][text]
]
}
}
fn -values [v]{
local:vv = [ (str:split ',' $v) ]
if (== (count $vv) 1) {
-value $vv[0]
} else {
put [ (each $-value~ $vv) ]
}
}
fn -get-id []{
local:id = [&]
str:split ' ' (id) | each [e]{
local:p = [ (str:split '=' $e) ]
if (== (count $p) 2) {
id[$p[0]] = (-values $p[1])
}
}
put $id
}
fn -get [k]{
local:id = (-get-id)
if (has-key $id $k) {
put $id[$k]
}
}
fn -is-root []{
== (-get uid)[number] 0
}
edit:add-var get-id~ $-get-id~
edit:add-var get-uid~ []{ -get uid }
edit:add-var get-gid~ []{ -get gid }
edit:add-var get-groups~ []{ -get groups; -get groupes }
edit:add-var is-root~ $-is-root~