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