[game-data-packager] 08/20: Determine DATADIR, ETCDIR, LIBDIR in Python code based on GDP_UNINSTALLED

Simon McVittie smcv at debian.org
Mon Jan 12 01:07:07 UTC 2015


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 b560398924180f1c83ccef6c77115fc4e4b84387
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Jan 11 16:07:05 2015 +0000

    Determine DATADIR, ETCDIR, LIBDIR in Python code based on GDP_UNINSTALLED
---
 game-data-packager                     |  2 ++
 lib/game_data_packager/__init__.py     | 35 +++++++++++-----------------------
 lib/game_data_packager/check_syntax.py |  8 +++-----
 lib/game_data_packager/paths.py        | 10 ++++++++++
 lib/via-python                         |  2 --
 5 files changed, 26 insertions(+), 31 deletions(-)

diff --git a/game-data-packager b/game-data-packager
index 24b7864..79ebfd4 100755
--- a/game-data-packager
+++ b/game-data-packager
@@ -12,6 +12,8 @@ COMPRESS="maybe"
 
 # test to see whether we are running in 'development mode'
 if [ "$0" = "./game-data-packager" ]; then
+	GDP_UNINSTALLED=1
+	export GDP_UNINSTALLED
 	SUPPORTED=./supported
 	LIBDIR=./lib
 	DATADIR="./out"
diff --git a/lib/game_data_packager/__init__.py b/lib/game_data_packager/__init__.py
index d64d244..1df3c67 100644
--- a/lib/game_data_packager/__init__.py
+++ b/lib/game_data_packager/__init__.py
@@ -40,20 +40,20 @@ import zipfile
 from debian.deb822 import Deb822
 import yaml
 
+from .paths import DATADIR, ETCDIR, LIBDIR
 from .util import TemporaryUmask, mkdir_p, rm_rf, human_size, MEBIBYTE
+from .version import GAME_PACKAGE_VERSION
 
 logging.basicConfig()
 logger = logging.getLogger('game-data-packager')
 
 # For now, we're given these by the shell script wrapper.
-DATADIR = os.environ['DATADIR']
+
 if os.environ.get('DEBUG'):
     logging.getLogger().setLevel(logging.DEBUG)
 else:
     logging.getLogger().setLevel(logging.INFO)
 
-from .version import GAME_PACKAGE_VERSION
-
 # arbitrary cutoff for providing progress bars
 QUITE_LARGE = 50 * MEBIBYTE
 
@@ -271,8 +271,6 @@ class GameDataPackage(object):
 class GameData(object):
     def __init__(self,
             shortname,
-            datadir='/usr/share/games/game-data-packager',
-            etcdir='/etc/game-data-packager',
             workdir=None):
         # The name of the game for command-line purposes, e.g. quake3
         self.shortname = shortname
@@ -280,12 +278,6 @@ class GameData(object):
         # The formal name of the game, e.g. Quake III Arena
         self.longname = shortname
 
-        # game-data-packager's configuration directory
-        self.etcdir = etcdir
-
-        # game-data-packager's data directory.
-        self.datadir = datadir
-
         # A temporary directory.
         self.workdir = workdir
 
@@ -306,7 +298,7 @@ class GameData(object):
         # Steam ID and path
         self.steam = {}
 
-        self.yaml = yaml.load(open(os.path.join(self.datadir,
+        self.yaml = yaml.load(open(os.path.join(DATADIR,
             shortname + '.yaml')))
 
         if 'longname' in self.yaml:
@@ -796,7 +788,7 @@ class GameData(object):
             return [wanted.download]
         for mirror_list, details in wanted.download.items():
             try:
-                f = open(os.path.join(self.etcdir, mirror_list))
+                f = open(os.path.join(ETCDIR, mirror_list))
                 for line in f:
                     url = line.strip()
                     if not url:
@@ -1012,16 +1004,16 @@ class GameData(object):
 
         docdir = os.path.join(destdir, 'usr/share/doc', package.name)
         mkdir_p(docdir)
-        shutil.copyfile(os.path.join(self.datadir, package.name + '.copyright'),
+        shutil.copyfile(os.path.join(DATADIR, package.name + '.copyright'),
                 os.path.join(docdir, 'copyright'))
-        shutil.copyfile(os.path.join(self.datadir, 'changelog.gz'),
+        shutil.copyfile(os.path.join(DATADIR, 'changelog.gz'),
                 os.path.join(docdir, 'changelog.gz'))
 
         debdir = os.path.join(destdir, 'DEBIAN')
         mkdir_p(debdir)
 
         for ms in ('preinst', 'postinst', 'prerm', 'postrm'):
-            maintscript = os.path.join(self.datadir, package.name + '.' + ms)
+            maintscript = os.path.join(DATADIR, package.name + '.' + ms)
             if os.path.isfile(maintscript):
                 shutil.copy(maintscript, os.path.join(debdir, ms))
 
@@ -1086,7 +1078,7 @@ class GameData(object):
                 shell=True, cwd=destdir)
         os.chmod(os.path.join(destdir, 'DEBIAN/md5sums'), 0o644)
 
-        control_in = open(os.path.join(self.datadir,
+        control_in = open(os.path.join(DATADIR,
             package.name + '.control.in'))
         control = Deb822(control_in)
         size = subprocess.check_output(['du', '-sk', '--exclude=./DEBIAN',
@@ -1297,11 +1289,7 @@ class GameData(object):
                             yield path
 
 def run_command_line():
-    datadir = os.environ['DATADIR']
-    etcdir = os.environ['ETCDIR']
     workdir = os.environ['WORKDIR']
-    logger.debug('Running with DATADIR=%s ETCDIR=%s WORKDIR=%s',
-            datadir, etcdir, workdir)
     logger.debug('Arguments: %r', sys.argv)
 
     parser = argparse.ArgumentParser(prog='game-data-packager',
@@ -1309,7 +1297,7 @@ def run_command_line():
 
     games = {}
 
-    for yamlfile in glob.glob(os.path.join(datadir, '*.yaml')):
+    for yamlfile in glob.glob(os.path.join(DATADIR, '*.yaml')):
         g = os.path.basename(yamlfile)
         g = g[:len(g) - 5]
 
@@ -1320,8 +1308,7 @@ def run_command_line():
             logger.debug('No special code for %s: %s', g, e)
             game_data_constructor = GameData
 
-        games[g] = game_data_constructor(g, datadir=datadir, etcdir=etcdir,
-                workdir=workdir)
+        games[g] = game_data_constructor(g, workdir=workdir)
 
     game_parsers = parser.add_subparsers(dest='shortname',
             title='supported games', metavar='GAME')
diff --git a/lib/game_data_packager/check_syntax.py b/lib/game_data_packager/check_syntax.py
index 8f9f988..e4de1ed 100644
--- a/lib/game_data_packager/check_syntax.py
+++ b/lib/game_data_packager/check_syntax.py
@@ -20,14 +20,12 @@ import os
 import os.path
 
 from . import GameData
+from .paths import DATADIR
 
 if __name__ == '__main__':
-    datadir=os.environ['DATADIR']
-
-    for yaml in glob.glob(datadir + '/*.yaml'):
+    for yaml in glob.glob(DATADIR + '/*.yaml'):
         try:
-            GameData(os.path.splitext(os.path.basename(yaml))[0],
-                    datadir=datadir)
+            GameData(os.path.splitext(os.path.basename(yaml))[0])
         except:
             print('Error loading %s:\n' % yaml)
             raise
diff --git a/lib/game_data_packager/paths.py b/lib/game_data_packager/paths.py
new file mode 100644
index 0000000..970e828
--- /dev/null
+++ b/lib/game_data_packager/paths.py
@@ -0,0 +1,10 @@
+import os
+
+if os.environ.get('GDP_UNINSTALLED'):
+    DATADIR = './out'
+    ETCDIR = './etc'
+    LIBDIR = './lib'
+else:
+    DATADIR = '/usr/share/games/game-data-packager'
+    ETCDIR = '/etc/game-data-packager'
+    LIBDIR = '/usr/lib/game-data-packager'
diff --git a/lib/via-python b/lib/via-python
index f4fdb4c..9862340 100644
--- a/lib/via-python
+++ b/lib/via-python
@@ -12,8 +12,6 @@ gdp_data_driven () {
     fi
 
     (
-    export ETCDIR
-    export DATADIR
     export WORKDIR
     PYTHONPATH="$LIBDIR"
     export PYTHONPATH

-- 
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