Add tailscale peer nushell command
This commit is contained in:
@ -682,6 +682,7 @@ alias xo = xdg-open
|
||||
source ~/.local/nu/readelf.nu
|
||||
source ~/.local/nu/mullvad.nu
|
||||
source ~/.local/nu/git.nu
|
||||
source ~/.local/nu/tailscale.nu
|
||||
{% if os == "darwin" %}
|
||||
source ~/.local/nu/macos.nu
|
||||
{% end %}
|
||||
|
||||
31
tree/.local/nu/tailscale.nu
Normal file
31
tree/.local/nu/tailscale.nu
Normal file
@ -0,0 +1,31 @@
|
||||
def "tailscale peer" [
|
||||
hostname?: string
|
||||
path?: cell-path
|
||||
]: nothing -> any {
|
||||
let path = ($path | default ([] | into cell-path))
|
||||
|
||||
let status = (^tailscale status --json | from json)
|
||||
|
||||
let peers = ($status | get Peer | transpose key fields | flatten fields)
|
||||
|
||||
let peers = ($peers | each { |peer|
|
||||
let ipv4 = $peer.TailscaleIPs | where { |ip| "." in $ip } | first
|
||||
let ipv6 = $peer.TailscaleIPs | where { |ip| ":" in $ip } | first
|
||||
|
||||
{
|
||||
host: $peer.HostName,
|
||||
ipv4: $ipv4,
|
||||
ipv6: $ipv6,
|
||||
online: $peer.Online,
|
||||
active: $peer.Active,
|
||||
rx: ($peer.RxBytes | into filesize),
|
||||
tx: ($peer.TxBytes | into filesize),
|
||||
}
|
||||
})
|
||||
|
||||
if $hostname == null {
|
||||
$peers
|
||||
} else {
|
||||
$peers | where host == $hostname | first | get $path
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user