ref: master
cmd/beterrabad/daemon.ha
use log; use fmt; use fs; use os; use path; use strings; use os::exec; use beterraba; fn setup(serv: *server) void = { // XXX: Load configuration as well? load(serv); }; // TODO: Load according to the configured place fn load(serv: *server) void = { const servdir = "/home/eletrotupi/.config/beterraba"; let servnames: []str = []; defer free(servnames); const it = os::iter(servdir)!; defer os::finish(it); for (true) { match (fs::next(it)) { case let ent: fs::dirent => if (ent.name == "." || ent.name == "..") { continue; }; if (strings::hassuffix(ent.name, ".service")) { append(servnames, strings::dup(ent.name)); }; case void => break; }; }; for (let i = 0z; i < len(servnames); i += 1) { const servpath = path::join(servdir, servnames[i]); const servfile = os::open(servpath)!; append(serv.services, beterraba::parse(servfile)); }; };