beterraba

ref: master

cmd/beterrabad/main.ha


use beterraba;
use os;
use os::exec;
use fs;
use log;
use io;
use strings;
use path;
use unix;
use unix::signal;
use fmt;
use rt;

export fn main() void = {
	signal::block(signal::SIGINT, signal::SIGTERM);
	const sigfd = signal::signalfd(signal::SIGINT, signal::SIGTERM)!;
	defer io::close(sigfd)!;

	const serv = bind(sigfd);

	defer shutdown(&serv);
	//const flags = rt::fcntl(sock.sock, rt::F_GETFL, 0)!;
	//rt::fcntl(sock.sock, rt::F_SETFL, flags | rt::O_CLOEXEC)!;
	setup(&serv);

	log::println("beterrabad running");
	for (dispatch(&serv)) void;
	log::println("beterrabad terminated");
};