diff --git a/pisi/context.py b/pisi/context.py index 834f3159..08093493 100644 --- a/pisi/context.py +++ b/pisi/context.py @@ -28,10 +28,10 @@ class BuildContext(object): def pkg_dir(self): packageDir = self.spec.source.name + '-' \ - + self.spec.source.version + '-' + self.spec.source.release + + self.spec.source.version + '-' + self.spec.source.release return self.destdir + const.tmp_dir_suffix \ - + '/' + packageDir + + '/' + packageDir def pkg_work_dir(self): return self.pkg_dir() + const.work_dir_suffix @@ -49,3 +49,47 @@ class BuildContext(object): def __setattr__(self, attr, value): return setattr(self.__instance, attr, value) + + +class InstallContext(object): + """Build Context Singleton""" + + class ctximpl(Config.configimpl): # singleton implementation + + def __init(self): + super(ctximpl, self).__init__() + + def setMetadataFile(self, metadatafile): + self.metadatafile = metadatafile + metadata = MetaData() + metadata.read(metadatafile) + metadata.verify() + + self.metadata = metadata + + def pkg_dir(self): + packageDir = self.metadata.package.name + '-' \ + + self.metadata.package.version + '-' + self.metadata.package.release + + return self.destdir + config.lib_dir() \ + + '/' + packageDir + + def files_dir(self): + return self.pkg_dir() + const.files_xml_dir_suffix + + def metadata_dir(self): + return self.pkg_dir() + const.metadata_xml_dir_suffix + + def comar_dir(self): + return self.pkg_dir() + const.comar_files_dir_suffix + + __instance = ctximpl() # singleton implementation + + def __init__(self, mdfile): + self.__instance.setMetadataFile(mdfile) + + def __getattr__(self, attr): + return getattr(self.__instance, attr) + + def __setattr__(self, attr, value): + return setattr(self.__instance, attr, value)