* improve component finding routine

- handle the local file case better
  - informative messages
This commit is contained in:
Eray Özkural
2005-11-17 13:20:09 +00:00
parent 8578e30a71
commit 159125dec8
+13 -6
View File
@@ -29,7 +29,8 @@ import pisi.dependency as dependency
import pisi.operations as operations import pisi.operations as operations
from pisi.sourcearchive import SourceArchive from pisi.sourcearchive import SourceArchive
from pisi.files import Files, File as FileInfo from pisi.files import Files, File as FileInfo
from pisi.files import Files from pisi.fetcher import fetch_url
from pisi.uri import URI
from pisi.metadata import MetaData from pisi.metadata import MetaData
from pisi.package import Package from pisi.package import Package
import pisi.component as component import pisi.component as component
@@ -152,7 +153,7 @@ class Builder:
self.check_build_dependencies() self.check_build_dependencies()
self.fetch_component() self.get_component()
self.fetch_source_archive() self.fetch_source_archive()
self.unpack_source_archive() self.unpack_source_archive()
@@ -190,15 +191,21 @@ class Builder:
os.environ["PATH"] = "/usr/lib/ccache/bin/:" + os.environ["PATH"] os.environ["PATH"] = "/usr/lib/ccache/bin/:" + os.environ["PATH"]
ctx.ui.info(_("CCache detected...")) ctx.ui.info(_("CCache detected..."))
def fetch_component(self): def get_component(self):
if not self.spec.source.partOf: if not self.spec.source.partOf:
ctx.ui.warning(_('PartOf tag not defined, looking for component'))
parentdir = os.path.realpath(self.pspecdir + '/../') parentdir = os.path.realpath(self.pspecdir + '/../')
url = util.join_path(parentdir, 'component.xml') url = util.join_path(parentdir, 'component.xml')
from pisi.fetcher import fetch_url
progress = ctx.ui.Progress progress = ctx.ui.Progress
fetch_url(url, self.bctx.pkg_work_dir(), progress) if URI(url).is_remote_file():
fetch_url(url, self.bctx.pkg_work_dir(), progress)
path = util.join_path(self.bctx.pkg_work_dir(), 'component.xml')
else:
if not os.path.exists(url):
raise Exception(_('Cannot find component.xml in upper directory'))
path = url
comp = component.Component() comp = component.Component()
comp.read(util.join_path(self.bctx.pkg_work_dir(), 'component.xml')) comp.read(path)
ctx.ui.info(_('Source is part of %s component') % comp.name) ctx.ui.info(_('Source is part of %s component') % comp.name)
self.spec.source.partOf = comp.name self.spec.source.partOf = comp.name
self.spec.override_tags() self.spec.override_tags()