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 } }