#!/usr/bin/env python3
# This file is placed in the Public Domain.
# pylint: disable=C,W0212


"service"


import getpass
import os
import pwd


from nixt.main    import forever, init, scan, wrap
from nixt.modules import face as FACE
from nixt.persist import Workdir, pidfile, pidname
from nixt.runtime import Errors


NAME        = Errors.__module__.split(".", maxsplit=2)[-2]
Workdir.wdr = os.path.expanduser(f"~/.{NAME}")


def errors():
    for err in Errors.errors:
        for line in err:
            print(line)


def privileges(username):
    pwnam2 = pwd.getpwnam(username)
    os.setgid(pwnam2.pw_gid)
    os.setuid(pwnam2.pw_uid)


def main():
    privileges(getpass.getuser())
    pidfile(pidname(NAME))
    scan(FACE)
    init(FACE)
    forever()


if __name__ == "__main__":
    wrap(main)
    errors()
