[game-data-packager] 12/25: packaging: expand variables recursively
Simon McVittie
smcv at debian.org
Sun Oct 9 21:26:06 UTC 2016
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 63a021d7af520dbc45f9c8be2758b2364b22475d
Author: Simon McVittie <smcv at debian.org>
Date: Sun Oct 9 14:42:45 2016 +0100
packaging: expand variables recursively
---
game_data_packager/packaging/__init__.py | 37 +++++++++++++++++++++-----------
game_data_packager/packaging/arch.py | 2 +-
game_data_packager/packaging/deb.py | 4 ++--
3 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/game_data_packager/packaging/__init__.py b/game_data_packager/packaging/__init__.py
index d25557e..09e72a1 100644
--- a/game_data_packager/packaging/__init__.py
+++ b/game_data_packager/packaging/__init__.py
@@ -21,11 +21,18 @@ import importlib
import os
import string
+class RecursiveExpansionMap(dict):
+ def __getitem__(self, k):
+ v = super(RecursiveExpansionMap, self).__getitem__(k)
+ return string.Template(v).substitute(self)
+
class PackagingSystem(metaclass=ABCMeta):
- ASSETS = '/usr/share'
- BINDIR = '/usr/bin'
- DOCDIR = '/usr/share/doc'
- LICENSEDIR = '/usr/share/doc'
+ ASSETS = '$datadir'
+ BINDIR = '$prefix/bin'
+ DATADIR = '$prefix/share'
+ DOCDIR = '$datadir/doc'
+ LICENSEDIR = '$datadir/doc'
+ PREFIX = '/usr'
CHECK_CMD = None
INSTALL_CMD = None
@@ -138,15 +145,19 @@ class PackagingSystem(metaclass=ABCMeta):
if '$' not in template:
return template
- return string.Template(template).substitute(kwargs,
- assets=self.ASSETS,
- bindir=self.BINDIR,
- docdir=self.DOCDIR,
- licensedir=self.LICENSEDIR,
- pkgdocdir=self._get_pkgdocdir(package),
- pkglicensedir=self._get_pkglicensedir(package),
- prefix=self.PREFIX,
- )
+ return string.Template(template).substitute(
+ RecursiveExpansionMap(
+ assets=self.ASSETS,
+ bindir=self.BINDIR,
+ datadir=self.DATADIR,
+ docdir=self.DOCDIR,
+ licensedir=self.LICENSEDIR,
+ pkgdocdir=self._get_pkgdocdir(package),
+ pkglicensedir=self._get_pkglicensedir(package),
+ prefix=self.PREFIX,
+ **kwargs))
+
+ return template
def _get_pkgdocdir(self, package):
return '/'.join((self.DOCDIR, package))
diff --git a/game_data_packager/packaging/arch.py b/game_data_packager/packaging/arch.py
index 702a19b..351aa06 100644
--- a/game_data_packager/packaging/arch.py
+++ b/game_data_packager/packaging/arch.py
@@ -26,7 +26,7 @@ from ..util import (run_as_root, check_output)
logger = logging.getLogger(__name__)
class ArchPackaging(PackagingSystem):
- LICENSEDIR = '/usr/share/licenses'
+ LICENSEDIR = '$datadir/licenses'
CHECK_CMD = 'namcap'
INSTALL_CMD = ['pacman', '-S']
PACKAGE_MAP = {
diff --git a/game_data_packager/packaging/deb.py b/game_data_packager/packaging/deb.py
index 184746e..3780895 100644
--- a/game_data_packager/packaging/deb.py
+++ b/game_data_packager/packaging/deb.py
@@ -33,8 +33,8 @@ from ..util import (check_output, mkdir_p, run_as_root)
logger = logging.getLogger(__name__)
class DebPackaging(PackagingSystem):
- BINDIR = '/usr/games'
- ASSETS = '/usr/share/games'
+ BINDIR = '$prefix/games'
+ ASSETS = '$datadir/games'
CHECK_CMD = 'lintian'
INSTALL_CMD = ['apt-get', 'install']
PACKAGE_MAP = {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git
More information about the Pkg-games-commits
mailing list