diff --git a/pkg/zones/zones.go b/pkg/zones/zones.go index ae0a99d..3f4a559 100644 --- a/pkg/zones/zones.go +++ b/pkg/zones/zones.go @@ -53,6 +53,24 @@ func (m *Zones) ForEachZone(fn func(*Zone) bool) { } } +// GetMachineByName looks for a machine with the specified +// name on any zone +func (m *Zones) GetMachineByName(name string) (*Machine, bool) { + var out *Machine + + if name != "" { + m.ForEachMachine(func(p *Machine) bool { + if p.Name == name { + out = p + } + + return out != nil + }) + } + + return out, out != nil +} + // NewFS builds a [Zones] tree using the given directory func NewFS(dir fs.FS, domain string) (*Zones, error) { lockuper := resolver.NewCloudflareLookuper()