This commit is contained in:
Martinez 2015-03-15 17:56:25 +01:00
parent 72004923af
commit b29823c322

View file

@ -1,8 +1,10 @@
#! /bin/env python3
# encoding: utf-8
import os
import sys
import re
import xdg.BaseDirectory
from . import file
from . import text
@ -213,31 +215,36 @@ class Main:
* Help system that generates help text based on program's configurable options.
'''
def __init__(self, name, version=None, license=None, cfg_file=None, cmdline=sys.argv[1:], allow_exit=True):
def __init__(self, name, full_name, version=None, license=None, use_cfg_file=False, cmdline=sys.argv[1:]):
'''
str name program name
str version program version
str license program license
str cfg_file path to config file, optional
list cmdline command line to parse; defaults to system cmdline (sys.argv)
str name program name (e.g. 'grid')
str full_name human readable program name (e.g. 'Overwatch Grid')
str version program version
str license program license name
str use_cfg_file if True, a config file at ~/.config/(self.name)/main.cfg will be used
list cmdline command line to parse; defaults to system cmdline (sys.argv)
Initializes over.Main and opens/creates the config file (if desired).
'''
self.cfg = CfgAccessor(self)
self.name = name
self.full_name = full_name
self.version = version
self.license = license
self.cmdline = cmdline
self.help_texts = [] # (chapter, [paragraphs])
self.allow_exit = allow_exit
self._print = text.Output('over.core.app.Main')
if cfg_file:
self.cfg_file = file.File(cfg_file, encoding='utf-8')
self.data_dir = os.path.join(xdg.BaseDirectory.xdg_data_home, self.name)
file.File(os.path.join(self.data_dir, '.keep'))
if use_cfg_file:
self.cfg_file = file.File(os.path.join(xdg.BaseDirectory.xdg_config_home, self.name, 'main.cfg'), encoding='utf-8')
if not self.cfg_file.data:
self.cfg_file.data = '''# Et configuration file for %s
self.cfg_file.data = '''# Configuration file for %s
# Licensed under the %s
#
# Syntax
@ -274,15 +281,12 @@ class Main:
bool silent don't mention it
Shutdown the program and exit.
Can be disabled by setting self.allow_exit to False.
'''
if self.allow_exit:
if not silent:
self._print('exiting with §B%d§/' %(retval), prefix.info)
sys.exit(retval)
if not silent:
self._print('exiting with §B%d§/' %(retval), prefix.info)
sys.exit(retval)
def dump(self, ignore=[]):
'''