add initial argParser
This commit is contained in:
@@ -13,21 +13,39 @@ if not os.path.dirname(os.path.realpath(__main__.__file__)) in sys.path:
|
||||
from core import i18n
|
||||
from core import settingsManager
|
||||
from core import debug
|
||||
import argparse
|
||||
|
||||
class fenrirManager():
|
||||
def __init__(self):
|
||||
self.initialized = False
|
||||
cliArgs = self.handleArgs()
|
||||
if not cliArgs:
|
||||
return
|
||||
try:
|
||||
self.environment = settingsManager.settingsManager().initFenrirConfig()
|
||||
self.environment = settingsManager.settingsManager().initFenrirConfig(cliArgs)
|
||||
if not self.environment:
|
||||
raise RuntimeError('Cannot Initialize. Maybe the configfile is not available or not parseable')
|
||||
except RuntimeError:
|
||||
raise
|
||||
self.initialized = True
|
||||
self.environment['runtime']['outputManager'].presentText(_("Start Fenrir"), soundIcon='ScreenReaderOn', interrupt=True)
|
||||
signal.signal(signal.SIGINT, self.captureSignal)
|
||||
signal.signal(signal.SIGTERM, self.captureSignal)
|
||||
self.wasCommand = False
|
||||
|
||||
|
||||
def handleArgs(self):
|
||||
args = None
|
||||
parser = argparse.ArgumentParser(description="Fenrir Help")
|
||||
parser.add_argument('-s', '--setting', metavar='SETTING-FILE', default='/etc/fenrir/settings/settings.conf', help='Use a specified settingsfile')
|
||||
parser.add_argument('-o', '--options', metavar='SECTION:SETTING=VALUE,..', default='', help='Overwrite options in given settings file')
|
||||
try:
|
||||
args = parser.parse_args()
|
||||
except Exception as e:
|
||||
parser.print_help()
|
||||
return args
|
||||
def proceed(self):
|
||||
if not self.initialized:
|
||||
return
|
||||
while(self.environment['generalInformation']['running']):
|
||||
try:
|
||||
self.handleProcess()
|
||||
|
@@ -205,14 +205,25 @@ class settingsManager():
|
||||
if not key in self.env['input']['scriptKey']:
|
||||
self.env['input']['scriptKey'].append(key)
|
||||
|
||||
def initFenrirConfig(self, environment = environment.environment, settingsRoot = '/etc/fenrir/', settingsFile='settings.conf', soundRoot = '/usr/share/sounds/fenrir/'):
|
||||
def initFenrirConfig(self, cliArgs, environment = environment.environment):
|
||||
settingsRoot = '/etc/fenrir/'
|
||||
settingsFile = cliArgs.setting
|
||||
soundRoot = '/usr/share/sounds/fenrir/'
|
||||
environment['runtime']['debug'] = debug.debug()
|
||||
environment['runtime']['debug'].initialize(environment)
|
||||
# get fenrir settings root
|
||||
if not os.path.exists(settingsRoot):
|
||||
if os.path.exists(os.path.dirname(os.path.realpath(__main__.__file__)) +'/../../config/'):
|
||||
settingsRoot = os.path.dirname(os.path.realpath(__main__.__file__)) +'/../../config/'
|
||||
else:
|
||||
return None
|
||||
# get settings file
|
||||
if not os.path.exists(settingsFile):
|
||||
if os.path.exists(settingsRoot + '/settings/' + settingsFile):
|
||||
settingsFile = settingsRoot + '/settings/' + settingsFile
|
||||
else:
|
||||
return None
|
||||
# get sound themes root
|
||||
if not os.path.exists(soundRoot):
|
||||
if os.path.exists(os.path.dirname(os.path.realpath(__main__.__file__)) +'/../../config/sound/'):
|
||||
soundRoot = os.path.dirname(os.path.realpath(__main__.__file__)) +'/../../config/sound/'
|
||||
@@ -220,7 +231,7 @@ class settingsManager():
|
||||
environment['runtime']['settingsManager'] = self
|
||||
environment['runtime']['settingsManager'].initialize(environment)
|
||||
|
||||
validConfig = environment['runtime']['settingsManager'].loadSettings(settingsRoot + '/settings/' + settingsFile)
|
||||
validConfig = environment['runtime']['settingsManager'].loadSettings(settingsFile)
|
||||
if not validConfig:
|
||||
return None
|
||||
|
||||
|
Reference in New Issue
Block a user