This is an automated email from the git hooks/post-receive script. smcv pushed a commit to branch master in repository game-data-packager.
commit b441099e24dc55f9b338a78041aa2efc288f068f Author: Simon McVittie <[email protected]> Date: Thu Jan 22 11:09:58 2015 +0000 Teach the Python code to read game-data-packager.conf --- lib/game_data_packager/__init__.py | 9 ++++++ lib/game_data_packager/config.py | 64 ++++++++++++++++++++++++++++++++++++++ lib/game_data_packager/paths.py | 2 ++ 3 files changed, 75 insertions(+) diff --git a/lib/game_data_packager/__init__.py b/lib/game_data_packager/__init__.py index 71e30cf..2c0cc69 100644 --- a/lib/game_data_packager/__init__.py +++ b/lib/game_data_packager/__init__.py @@ -41,6 +41,7 @@ import zipfile from debian.deb822 import Deb822 import yaml +from .config import read_config from .paths import DATADIR, ETCDIR from .util import (MEBIBYTE, TemporaryUmask, @@ -2295,6 +2296,7 @@ def run_command_line(): for g in sorted(games.keys()): games[g].add_parser(game_parsers, base_parser) + config = read_config() parsed = argparse.Namespace( compress=None, destination=None, @@ -2305,6 +2307,13 @@ def run_command_line(): search=True, shortname=None, ) + if config['install']: + logger.debug('obeying INSTALL=yes in configuration') + parsed.install = True + if config['preserve']: + logger.debug('obeying PRESERVE=yes in configuration') + parsed.destination = '.' + parser.parse_args(namespace=parsed) logger.debug('parsed command-line arguments into: %r', parsed) diff --git a/lib/game_data_packager/config.py b/lib/game_data_packager/config.py new file mode 100644 index 0000000..d8a1e20 --- /dev/null +++ b/lib/game_data_packager/config.py @@ -0,0 +1,64 @@ +#!/usr/bin/python3 +# vim:set fenc=utf-8: +# +# Copyright © 2014-2015 Simon McVittie <[email protected]> +# +# This program 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. +# +# You can find the GPL license text on a Debian system under +# /usr/share/common-licenses/GPL-2. + +import logging +import re + +from .paths import CONFIG + +logger = logging.getLogger('game-data-packager.config') + +COMMENT = re.compile(r'#.*') +OPTION = re.compile('^([A-Z]+)=(["\']?)(.*)\\2$') + +def read_config(): + """The world's simplest shell script parser. + """ + + config = { 'install': False, 'preserve': True } + + try: + with open(CONFIG) as conffile: + lineno = 0 + for line in conffile: + lineno += 1 + line = COMMENT.sub('', line) + line = line.strip() + if not line: + continue + match = OPTION.match(line) + if match: + k = match.group(1).lower() + v = match.group(3) + if k in config: + if v == 'yes': + config[k] = True + elif v == 'no': + config[k] = False + else: + logger.warning('%s:%d: unknown option value: %s=%r', + CONFIG, lineno, k, v) + else: + logger.warning('%s:%d: unknown option: %s', + CONFIG, lineno, k) + else: + logger.warning('%s:%d: could not parse line: %r', + CONFIG, lineno, line) + except OSError: + pass + + return config diff --git a/lib/game_data_packager/paths.py b/lib/game_data_packager/paths.py index 970e828..abb80c5 100644 --- a/lib/game_data_packager/paths.py +++ b/lib/game_data_packager/paths.py @@ -1,10 +1,12 @@ import os if os.environ.get('GDP_UNINSTALLED'): + CONFIG = './etc/game-data-packager.conf' DATADIR = './out' ETCDIR = './etc' LIBDIR = './lib' else: + CONFIG = '/etc/game-data-packager.conf' DATADIR = '/usr/share/games/game-data-packager' ETCDIR = '/etc/game-data-packager' LIBDIR = '/usr/lib/game-data-packager' -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

