Commit b4bb64e2 authored by Jack Jansen's avatar Jack Jansen

Added preInstall and postInstall commands to packages. PIL needs this

(preInstall, at least).
parent e1ebd80b
...@@ -176,7 +176,9 @@ class PimpPackage: ...@@ -176,7 +176,9 @@ class PimpPackage:
longdesc=None, longdesc=None,
downloadURL=None, downloadURL=None,
installTest=None, installTest=None,
prerequisites=None): prerequisites=None,
preInstall=None,
postInstall=None):
self._db = db self._db = db
self.name = name self.name = name
self.version = version self.version = version
...@@ -186,6 +188,8 @@ class PimpPackage: ...@@ -186,6 +188,8 @@ class PimpPackage:
self.downloadURL = downloadURL self.downloadURL = downloadURL
self._installTest = installTest self._installTest = installTest
self._prerequisites = prerequisites self._prerequisites = prerequisites
self._preInstall = preInstall
self._postInstall = postInstall
def dump(self): def dump(self):
dict = { dict = {
...@@ -205,6 +209,10 @@ class PimpPackage: ...@@ -205,6 +209,10 @@ class PimpPackage:
dict['installTest'] = self._installTest dict['installTest'] = self._installTest
if self._prerequisites: if self._prerequisites:
dict['prerequisites'] = self._prerequisites dict['prerequisites'] = self._prerequisites
if self._preInstall:
dict['preInstall'] = self._preInstall
if self._postInstall:
dict['postInstall'] = self._postInstall
return dict return dict
def __cmp__(self, other): def __cmp__(self, other):
...@@ -312,8 +320,16 @@ class PimpPackage: ...@@ -312,8 +320,16 @@ class PimpPackage:
msg = self.unpackSinglePackage(output) msg = self.unpackSinglePackage(output)
if msg: if msg:
return "unpack %s: %s" % (_fmtpackagename(self), msg) return "unpack %s: %s" % (_fmtpackagename(self), msg)
if self._preInstall:
if self._cmd(output, self._buildDirname, self._preInstall):
return "pre-install %s: running \"%s\" failed" % \
(_fmtpackagename(self), self._preInstall)
if self._cmd(output, self._buildDirname, sys.executable, "setup.py install"): if self._cmd(output, self._buildDirname, sys.executable, "setup.py install"):
return "install %s: running \"setup.py install\" failed" % _fmtpackagename(self) return "install %s: running \"setup.py install\" failed" % _fmtpackagename(self)
if self._postInstall:
if self._cmd(output, self._buildDirname, self._postInstall):
return "post-install %s: running \"%s\" failed" % \
(_fmtpackagename(self), self._postInstall)
return None return None
class PimpInstaller: class PimpInstaller:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment