Install'da Build gibi Class içine girsin, benzer olsunlar demi.
This commit is contained in:
+3
-2
@@ -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
@@ -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')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user