zones: add initial m/ scanner

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-08-21 17:51:44 +00:00
parent a3f8e2fee3
commit 1ea1ab4ac4
3 changed files with 137 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
package zones
import (
"io/fs"
)
func (m *Zones) scan() error {
// each directory is a zone
entries, err := fs.ReadDir(m.dir, ".")
if err != nil {
return err
}
for _, e := range entries {
if e.IsDir() {
z := &Zone{
zones: m,
Name: e.Name(),
}
if err := z.scan(); err != nil {
return err
}
m.Zones = append(m.Zones, z)
}
}
return nil
}
func (z *Zone) scan() error {
// each directory is a machine
entries, err := fs.ReadDir(z.zones.dir, z.Name)
if err != nil {
return err
}
for _, e := range entries {
if e.IsDir() {
m := &Machine{
zone: z,
Name: e.Name(),
}
z.Machines = append(z.Machines, m)
}
}
return nil
}