#!/usr/bin/python3
import os
import pathlib
import sys
import signal
import logging
import gettext

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio

# support running uninstalled
dirname = pathlib.Path(*pathlib.Path(__file__).parts[:-2])
if 'BLUEMAN_SOURCE' in os.environ:
    sys.path.insert(0, dirname.joinpath('module', '.libs').as_posix())
    sys.path.insert(0, dirname.as_posix())
    os.environ["GSETTINGS_SCHEMA_DIR"] = dirname.joinpath("data").as_posix()

_ = gettext.gettext
gettext.textdomain("blueman")

from blueman.Functions import set_proc_title, create_parser, create_logger
from blueman.main.Sendto import SendTo

# Workaround introspection bug, gnome bug 622084
signal.signal(signal.SIGINT, signal.SIG_DFL)


if __name__ == '__main__':
    parser = create_parser(syslog=True)
    parser.add_argument("-d", "--device", "--dest", dest="device", action="store",
                        help=_("Send files to this device"), metavar="ADDRESS")
    parser.add_argument("-s", "--source", dest="source", action="store",
                        help=_("Source adapter. Takes address or adapter's name eg. hci0"), metavar="PATTERN")
    parser.add_argument("-u", "--delete", dest="delete", action="store_true", help=_("Delete files on exit"))
    parser.add_argument("files", nargs="*", metavar="FILE",
                        help=_("Files to be send to the bluetooth device"))

    args = parser.parse_args()

    if args.LEVEL.upper() == "DEBUG":
        log_level = logging.DEBUG
    elif args.LEVEL.upper() == "INFO":
        log_level = logging.INFO
    elif args.LEVEL.upper() == "WARNING":
        log_level = logging.WARNING
    elif args.LEVEL.upper() == "ERROR":
        log_level = logging.ERROR
    elif args.LEVEL.upper() == "CRITICAL":
        log_level = logging.CRITICAL
    else:
        log_level = logging.WARNING

    create_logger(log_level, "blueman-sendto", syslog=args.syslog)

    set_proc_title()
    SendTo(args)
    Gtk.main()
