From 94d4be3bc2b009d24083feaaadffc7511494ca61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Mon, 20 Jun 2005 13:40:56 +0000 Subject: [PATCH] =?UTF-8?q?Install'da=20Build=20gibi=20Class=20i=C3=A7ine?= =?UTF-8?q?=20girsin,=20benzer=20olsunlar=20demi.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi-install | 5 ++-- pisi/install.py | 62 ++++++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/pisi-install b/pisi-install index 5cd24d89..423de826 100755 --- a/pisi-install +++ b/pisi-install @@ -6,7 +6,7 @@ import sys from optparse import OptionParser sys.path.append("./lib") -import pisi.install +from pisi.install import PisiInstall, PisiInstallError import pisi.util class ArgError(Exception): @@ -37,7 +37,8 @@ def main(): else: package_fn = args[0] - pisi.install.install_package_file(package_fn) + pi = PisiInstall(package_fn) + pi.install() if __name__ == "__main__": diff --git a/pisi/install.py b/pisi/install.py index 5b3ecc01..cb0168b8 100644 --- a/pisi/install.py +++ b/pisi/install.py @@ -11,42 +11,46 @@ import packagedb import dependency #import conflicts -class InstallError(Exception): +class PisiInstallError(Exception): pass -def install_package_file(package_fn): +class PisiInstall: + def __init__(self, package_fn): + self.install(package_fn) + + def install(self, package_fn): - package = Package(package_fn, 'r') - # extract control files - util.clean_dir(ctx.install_dir()) - ui.info('extracting files\n') - package.extract_PISI_files(ctx.install_dir()) + package = Package(package_fn, 'r') + # extract control files + util.clean_dir(ctx.install_dir()) + ui.info('extracting files\n') + package.extract_PISI_files(ctx.install_dir()) - # verify package - # check if we have all required files + # verify package + # check if we have all required files - metadata = MetaData() - metadata.read(ctx.install_dir() + '/metadata.xml') - # check package semantics - if not metadata.verify(): - raise InstallError("MetaData format wrong") + metadata = MetaData() + metadata.read(ctx.install_dir() + '/metadata.xml') + # check package semantics + if not metadata.verify(): + raise InstallError("MetaData format wrong") - # check file system requirements - # what to do if / is split into /usr, /var, etc.? + # check file system requirements + # what to do if / is split into /usr, /var, etc.? - # check conflicts - # check dependencies - if not dependency.installable(metadata.packages[0].name): - raise InstallError("Package not installable") + # check conflicts + # check dependencies + if not dependency.installable(metadata.packages[0].name): + raise InstallError("Package not installable") - # unzip package in place - package.extract_dir_flat(ctx.destdir) + # unzip package in place + package.extract_dir_flat(ctx.destdir) + + # update databases - # update databases - - # installdb - installdb.install(metadata.packages[0].name, - metadata.source.version, - metadata.source.release, - ctx.install_dir() + '/files.xml') + # installdb + installdb.install(metadata.packages[0].name, + metadata.source.version, + metadata.source.release, + ctx.install_dir() + '/files.xml')