diff options
author | Tomás Touceda <chiiph@torproject.org> | 2012-01-04 13:14:08 -0300 |
---|---|---|
committer | Tomás Touceda <chiiph@torproject.org> | 2012-01-04 13:14:08 -0300 |
commit | 62c2dd6e24f6ac0523fe7e1c16e1475b1988d61f (patch) | |
tree | 3e3e0c000c9efb390b659fb0ecc8d77eeabdf960 /lib/thandy | |
parent | c01e9c0bcef743442c8e44641b8cb0f51585eb6e (diff) |
Add a thp_dest parameter to install package in custom locations
Diffstat (limited to 'lib/thandy')
-rw-r--r-- | lib/thandy/formats.py | 6 | ||||
-rw-r--r-- | lib/thandy/packagesys/PackageSystem.py | 2 | ||||
-rw-r--r-- | lib/thandy/packagesys/ThpPackages.py | 10 |
3 files changed, 13 insertions, 5 deletions
diff --git a/lib/thandy/formats.py b/lib/thandy/formats.py index 0a73ff4..6253678 100644 --- a/lib/thandy/formats.py +++ b/lib/thandy/formats.py @@ -746,7 +746,7 @@ def makePackageObj(config_fname, package_fname): 'exe_registry_ent', 'db_key', 'db_val', 'command_install', 'command_remove', - 'thp_name', 'thp_version', + 'thp_name', 'thp_version', 'thp_dest' ], preload) f = open(package_fname, 'rb') @@ -790,6 +790,10 @@ def makePackageObj(config_fname, package_fname): if not r.get('thp_version'): raise thandy.FormatException("missing thp_version value") extra['thp_version'] = r['thp_version'] + if not r.get('thp_dest'): + extra['thp_dest'] = "" + else: + extra['thp_dest'] = r['thp_dest'] if r.get('command_install'): extra['install_type'] = 'command' diff --git a/lib/thandy/packagesys/PackageSystem.py b/lib/thandy/packagesys/PackageSystem.py index b2e66a1..36af2f2 100644 --- a/lib/thandy/packagesys/PackageSystem.py +++ b/lib/thandy/packagesys/PackageSystem.py @@ -110,7 +110,7 @@ def getInstaller(relPath, extra, defaultFormat, package): elif installType == 'thp': import thandy.packagesys.ThpPackages installer = thandy.packagesys.ThpPackages.ThpInstaller( - relPath) + relPath, extra['thp_dest']) else: return None diff --git a/lib/thandy/packagesys/ThpPackages.py b/lib/thandy/packagesys/ThpPackages.py index d90af0c..85a681b 100644 --- a/lib/thandy/packagesys/ThpPackages.py +++ b/lib/thandy/packagesys/ThpPackages.py @@ -213,9 +213,10 @@ class ThpTransaction(PS.Transaction): class ThpInstaller(PS.Installer): """ Represents an installer for an individual Thp package. """ - def __init__(self, relPath, db = None, repoRoot = None): + def __init__(self, relPath, db = None, repoRoot = None, dest = ""): PS.Installer.__init__(self, relPath) self._db = db + self._dest = dest self.setCacheRoot(repoRoot) if db is None: self._db = ThpDB() @@ -243,9 +244,12 @@ class ThpInstaller(PS.Installer): self._db.insert(pkg_metadata) self._db.statusInProgress(pkg_metadata) - dir = os.path.join(self._thp_root, self._pkg.get("package_name")) + if len(self._dest) == 0: + dir = os.path.join(self._thp_root, self._pkg.get("package_name")) + else: + dir = os.path.join(self._thp_root, self._dest) try: - os.mkdir(dir) + os.makedirs(dir) except: logging.info("%s: Already exists, using it." % dir) |