diff --git a/src/pkgupdates/package.py b/src/pkgupdates/package.py index 06564d7..bdbeb1f 100755 --- a/src/pkgupdates/package.py +++ b/src/pkgupdates/package.py @@ -21,15 +21,25 @@ PkgVersion = collections.namedtuple("PkgVersion", def get_packages_from_tree(): """Get files from git tree""" res = {} - repo = git.Repo(os.getcwd()) + cwdir = os.getcwd() + + repo = git.Repo(cwdir, search_parent_directories=True) + tree = repo.commit().tree + overroot = repo.git.rev_parse("--show-toplevel") + creldir = cwdir.replace(overroot, '') + if creldir.startswith("/"): + creldir = creldir[1:] if repo.bare: return - for entry in repo.commit().tree.traverse(): + for entry in tree.traverse(): file = entry.path root = os.path.dirname(file) if not file.endswith('.ebuild'): continue + if creldir not in file: + continue + p1 = os.path.split(root) p2 = os.path.split(p1[0]) pkg = os.path.join(p2[1], p1[1]) @@ -41,7 +51,7 @@ def get_packages_from_tree(): if pkg in res: res[pkg]["versions"].append(match.groups()[0]) else: - metadata = get_metadata(root) + metadata = get_metadata(os.path.join(overroot, root)) if metadata is None: metadata = {} res[pkg] = metadata