#!/usr/bin/python3.4
# -*- coding: utf-8 -*-
#
# Dell Driver Installer
#
# Copyright (C) 2012 Dell Inc,
#   Author: Mario Limonciello
#
# This is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this application; if not, write to the Free Software Foundation, Inc., 51
# Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
##################################################################################

from Dell.recovery_common import find_partitions
import subprocess
from Dell.driver_gtk import DriverGTK
import argparse
import logging

def setup_logging(debug=False, logfile=None):
    '''Setup logging.'''

    logging.raiseExceptions = False
    if debug:
        logging.basicConfig(level=logging.DEBUG, filename=logfile,
            format='%(asctime)s %(levelname)s: %(message)s')
    else:
        logging.basicConfig(level=logging.WARNING, filename=logfile,
            format='%(levelname)s: %(message)s')

parser = argparse.ArgumentParser()
parser.add_argument('fname', nargs='?', default='')
parser.add_argument ('--debug', action='store_true',
        dest='debug', default=False,
        help='Enable debugging messages.')
parser.add_argument ('--logfile', metavar='FILE', dest='logfile', default=None,
        help='Write logging messages to a file instead to stderr.')
parser_args = parser.parse_args()

setup_logging(parser_args.debug, parser_args.logfile)

if __name__ == '__main__':
    import dbus.mainloop.glib
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    utility, recovery = find_partitions()

    args = (recovery, utility, parser_args.fname, 'driver')
    tool = DriverGTK(*args)
    
    tool.run()
