Install'da Build gibi Class içine girsin, benzer olsunlar demi.

This commit is contained in:
S.Çağlar Onur
2005-06-20 13:40:56 +00:00
parent cec4c2c281
commit 94d4be3bc2
2 changed files with 36 additions and 31 deletions
+3 -2
View File
@@ -6,7 +6,7 @@ import sys
from optparse import OptionParser from optparse import OptionParser
sys.path.append("./lib") sys.path.append("./lib")
import pisi.install from pisi.install import PisiInstall, PisiInstallError
import pisi.util import pisi.util
class ArgError(Exception): class ArgError(Exception):
@@ -37,7 +37,8 @@ def main():
else: else:
package_fn = args[0] package_fn = args[0]
pisi.install.install_package_file(package_fn) pi = PisiInstall(package_fn)
pi.install()
if __name__ == "__main__": if __name__ == "__main__":
+32 -28
View File
@@ -11,42 +11,46 @@ import packagedb
import dependency import dependency
#import conflicts #import conflicts
class InstallError(Exception): class PisiInstallError(Exception):
pass pass
def install_package_file(package_fn): class PisiInstall:
def __init__(self, package_fn):
self.install(package_fn)
package = Package(package_fn, 'r') def install(self, package_fn):
# extract control files
util.clean_dir(ctx.install_dir())
ui.info('extracting files\n')
package.extract_PISI_files(ctx.install_dir())
# verify package package = Package(package_fn, 'r')
# check if we have all required files # extract control files
util.clean_dir(ctx.install_dir())
ui.info('extracting files\n')
package.extract_PISI_files(ctx.install_dir())
metadata = MetaData() # verify package
metadata.read(ctx.install_dir() + '/metadata.xml') # check if we have all required files
# check package semantics
if not metadata.verify():
raise InstallError("MetaData format wrong")
# check file system requirements metadata = MetaData()
# what to do if / is split into /usr, /var, etc.? metadata.read(ctx.install_dir() + '/metadata.xml')
# check package semantics
if not metadata.verify():
raise InstallError("MetaData format wrong")
# check conflicts # check file system requirements
# check dependencies # what to do if / is split into /usr, /var, etc.?
if not dependency.installable(metadata.packages[0].name):
raise InstallError("Package not installable")
# unzip package in place # check conflicts
package.extract_dir_flat(ctx.destdir) # check dependencies
if not dependency.installable(metadata.packages[0].name):
raise InstallError("Package not installable")
# update databases # unzip package in place
package.extract_dir_flat(ctx.destdir)
# installdb # update databases
installdb.install(metadata.packages[0].name,
metadata.source.version, # installdb
metadata.source.release, installdb.install(metadata.packages[0].name,
ctx.install_dir() + '/files.xml') metadata.source.version,
metadata.source.release,
ctx.install_dir() + '/files.xml')