guess_spec() should return a spec belonging to given project
authorHuang Hao <hao.h.huang@intel.com>
Wed, 24 Oct 2012 07:32:45 +0000 (15:32 +0800)
committerHuang Hao <hao.h.huang@intel.com>
Wed, 24 Oct 2012 07:32:45 +0000 (15:32 +0800)
Fix #483

Change-Id: I29810b0ae6aa11598793cd7dc3fcf29616330a97

gitbuildsys/utils.py

index 57e1fbe..48860f4 100644 (file)
@@ -44,14 +44,18 @@ class Workdir(object):
         os.chdir(self._cwd)
 
 def guess_spec(workdir, default_spec):
+    workdir = os.path.abspath(workdir)
+    git_project =  os.path.basename(workdir)
+
     if default_spec:
         default_spec = os.path.abspath(default_spec)
+        if not default_spec.startswith(workdir):
+            msger.error("spec file doesn't belong to the project %s: "
+                        "%s" % (git_project, default_spec))
         if not os.path.exists(default_spec):
             msger.error('%s does not exit' % default_spec)
         return default_spec
 
-    workdir = os.path.abspath(workdir)
-    git_project =  os.path.basename(workdir)
     specfile = os.path.join(workdir, 'packaging', '%s.spec' % git_project)
     if not os.path.exists(specfile):
         specs = glob.glob(os.path.join(workdir, 'packaging', '*.spec'))