#!/usr/bin/python3
"""
.. moduleauthor:: Eric Torres

Command-Line Arguments
======================

A daemon that waits to run backup jobs and manages a
Repository on the local system.

backupd listens on a specified port for a backup job sent
by the backup script and 

TODO inspect python-daemon for use with this script
"""

import daemon
import logging

from rbackup.struct.repository import Repository

# ========== Constants ==========


# ========== Functions ==========
def parse_cmdline_arguments(**kwargs):
    """Parse command line arguments passed to the script.
        All kwargs are passed to ArgumentParser.parse_args().

    :rtype: argparse.Namespace object
    """
    parser = argparse.ArgumentParser()
    parser.add_argument("repository", help="repository to back up to", metavar="repo")

    return parser.parse_args(**kwargs)


# ========== Logging Setup ==========
console_formatter = logging.Formatter(LOGFORMAT)
syslog = logging.getLogger("rbackup")
syslog.setLevel(logging.DEBUG)

stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setLevel(logging.INFO)
stdout_handler.setFormatter(console_formatter)
stdout_handler.addFilter(lambda record: record.levelno <= logging.INFO)

stderr_handler = logging.StreamHandler(sys.stderr)
stderr_handler.setLevel(logging.WARNING)
stderr_handler.setFormatter(console_formatter)

syslog.addHandler(stdout_handler)
syslog.addHandler(stderr_handler)


# ========== Main Program ==========
if __name__ == "__main__":
    with daemon.DaemonContext():
        pass