r
Radicle
Git
#! /usr/bin/env nu
def main [
--db: path # Path of node database to query
--query: path # Path of query to run against database
--zone: path # Path of the zone file to (over)write
] {
open $db |
query db $"(open $query)" |
where {|row|
(^resolvectl query --cname=false $row.host | complete).exit_code == 0
} |
each {|row|
let serviceName = "_radicle-node._tcp"
let name = $"($row.node).($serviceName)"
$"
($serviceName) PTR ($name)
($name) TXT \"nid=($row.node)\"
($name) TXT \"version=1\"
($name) TXT \"network=main\"
($name) SRV 0 1 ($row.port) ($row.host)."
} |
str join "\n" |
save -f $zone
}