1
0
mirror of https://github.com/gryf/fs-uae-wrapper.git synced 2026-02-19 08:45:46 +01:00

Added logging module

This commit is contained in:
2017-01-08 13:17:41 +01:00
parent 7931022777
commit a918e4c9ff
4 changed files with 71 additions and 10 deletions

View File

@@ -177,14 +177,34 @@ class Base(object):
needed to calculate new paths so that emulator can find assets. needed to calculate new paths so that emulator can find assets.
""" """
exclude_list = ['save_states_dir'] exclude_list = ['save_states_dir']
include_list = ['wrapper_archive', 'accelerator_rom', 'base_dir',
'cdrom_drive_0', 'cdroms_dir', 'controllers_dir',
'cpuboard_flash_ext_file', 'cpuboard_flash_file',
'floppies_dir', 'floppy_overlays_dir', 'fmv_rom',
'graphics_card_rom', 'hard_drives_dir',
'kickstart_file', 'kickstarts_dir', 'logs_dir',
'screenshots_output_dir', 'state_dir']
for num in range(20):
include_list.append('cdrom_image_%d' % num)
include_list.append('floppy_image_%d' % num)
for num in range(4):
include_list.append('floppy_drive_%d' % num)
for num in range(10):
include_list.append('hard_drive_%d' % num)
conf_abs_dir = os.path.dirname(os.path.abspath(self.conf_file)) conf_abs_dir = os.path.dirname(os.path.abspath(self.conf_file))
changed_options = {} changed_options = {}
for key, val in utils.get_config(self.conf_file).items(): for key, val in utils.get_config(self.conf_file).items():
if val.startswith('/'): if key in exclude_list:
continue continue
if key in exclude_list: if key not in include_list:
continue
if val.startswith('/'):
continue continue
if val.startswith('$CONFIG'): if val.startswith('$CONFIG'):

View File

@@ -4,6 +4,7 @@ Wrapper for FS-UAE to perform some actions before and or after running the
emulator, if appropriate option is enabled. emulator, if appropriate option is enabled.
""" """
import importlib import importlib
import logging
import os import os
import sys import sys
@@ -11,6 +12,25 @@ from fs_uae_wrapper import utils
from fs_uae_wrapper import WRAPPER_KEY from fs_uae_wrapper import WRAPPER_KEY
def setup_logger(options):
"""Setup logger format and level"""
level = logging.WARNING
if options['wrapper_quiet']:
level = logging.ERROR
if options['wrapper_quiet'] > 1:
level = logging.CRITICAL
if options['wrapper_verbose']:
level = logging.INFO
if options['wrapper_verbose'] > 1:
level = logging.DEBUG
logging.basicConfig(level=level,
format="%(asctime)s %(levelname)s: %(message)s")
def parse_args(): def parse_args():
""" """
Look out for config file and for config options which would be blindly Look out for config file and for config options which would be blindly
@@ -18,7 +38,16 @@ def parse_args():
""" """
fs_conf = None fs_conf = None
options = utils.CmdOption() options = utils.CmdOption()
options['wrapper_verbose'] = 0
options['wrapper_quiet'] = 0
for parameter in sys.argv[1:]: for parameter in sys.argv[1:]:
if parameter in ['-v', '-q']:
if parameter == '-v':
options['wrapper_verbose'] += 1
if parameter == '-q':
options['wrapper_quiet'] += 1
continue
try: try:
options.add(parameter) options.add(parameter)
except AttributeError: except AttributeError:
@@ -47,6 +76,9 @@ def usage():
def run(): def run():
"""run wrapper module""" """run wrapper module"""
config_file, fsuae_options = parse_args() config_file, fsuae_options = parse_args()
setup_logger(fsuae_options)
del fsuae_options['wrapper_verbose']
del fsuae_options['wrapper_quiet']
if 'help' in fsuae_options: if 'help' in fsuae_options:
usage() usage()

View File

@@ -57,10 +57,10 @@ class TestBase(TestCase):
self.assertDictEqual(bobj.fsuae_options, {}) self.assertDictEqual(bobj.fsuae_options, {})
os.chdir(self.dirname) os.chdir(self.dirname)
get_config.return_value = {'foo': 'bar'} get_config.return_value = {'fmv_rom': 'bar'}
bobj._normalize_options() bobj._normalize_options()
self.assertDictEqual(bobj.fsuae_options, self.assertDictEqual(bobj.fsuae_options,
{'foo': os.path.join(self.dirname, 'bar')}) {'fmv_rom': os.path.join(self.dirname, 'bar')})
get_config.return_value = {'floppies_dir': '../some/path'} get_config.return_value = {'floppies_dir': '../some/path'}
bobj.fsuae_options = utils.CmdOption() bobj.fsuae_options = utils.CmdOption()

View File

@@ -67,11 +67,13 @@ class TestWrapper(TestCase):
def test_parse_args(self): def test_parse_args(self):
# Looking for configuration file... first, we have nothing # Looking for configuration file... first, we have nothing
self.assertEqual(wrapper.parse_args(), (None, {})) self.assertEqual(wrapper.parse_args(),
(None, {'wrapper_verbose': 0, 'wrapper_quiet': 0}))
# still no luck - nonexistent file # still no luck - nonexistent file
sys.argv.append('there-is-no-config.fs-uae') sys.argv.append('there-is-no-config.fs-uae')
self.assertEqual(wrapper.parse_args(), (None, {})) self.assertEqual(wrapper.parse_args(),
(None, {'wrapper_verbose': 0, 'wrapper_quiet': 0}))
# lets make it # lets make it
os.chdir(self.dirname) os.chdir(self.dirname)
@@ -79,7 +81,8 @@ class TestWrapper(TestCase):
fobj.write('\n') fobj.write('\n')
self.assertEqual(wrapper.parse_args(), self.assertEqual(wrapper.parse_args(),
('there-is-no-config.fs-uae', {})) ('there-is-no-config.fs-uae',
{'wrapper_verbose': 0, 'wrapper_quiet': 0}))
# remove argument, try to find default one # remove argument, try to find default one
sys.argv.pop() sys.argv.pop()
@@ -88,7 +91,9 @@ class TestWrapper(TestCase):
with open('Config.fs-uae', 'w') as fobj: with open('Config.fs-uae', 'w') as fobj:
fobj.write('\n') fobj.write('\n')
self.assertEqual(wrapper.parse_args(), ('Config.fs-uae', {})) self.assertEqual(wrapper.parse_args(),
('Config.fs-uae',
{'wrapper_verbose': 0, 'wrapper_quiet': 0}))
# add --wrapper-foo and --wrapper-bar options # add --wrapper-foo and --wrapper-bar options
sys.argv.extend(['--wrapper=plain', '--wrapper_foo=1', sys.argv.extend(['--wrapper=plain', '--wrapper_foo=1',
@@ -104,7 +109,9 @@ class TestWrapper(TestCase):
self.assertEqual(conf, 'Config.fs-uae') self.assertEqual(conf, 'Config.fs-uae')
self.assertDictEqual(fsopts, {'wrapper': 'plain', self.assertDictEqual(fsopts, {'wrapper': 'plain',
'wrapper_foo': '1', 'wrapper_foo': '1',
'wrapper_bar': 'false'}) 'wrapper_bar': 'false',
'wrapper_verbose': 0,
'wrapper_quiet': 0})
# mix wrapper* params in commandline and config # mix wrapper* params in commandline and config
sys.argv = ['fs-uae-wrapper', sys.argv = ['fs-uae-wrapper',
@@ -120,4 +127,6 @@ class TestWrapper(TestCase):
self.assertDictEqual(fsopts, {'wrapper': 'plain', self.assertDictEqual(fsopts, {'wrapper': 'plain',
'wrapper_bar': 'false', 'wrapper_bar': 'false',
'fullscreen': '1', 'fullscreen': '1',
'fast_memory': '4096'}) 'fast_memory': '4096',
'wrapper_verbose': 0,
'wrapper_quiet': 0})