|
|
@ -21,15 +21,25 @@ PkgVersion = collections.namedtuple("PkgVersion", |
|
|
def get_packages_from_tree(): |
|
|
def get_packages_from_tree(): |
|
|
"""Get files from git tree""" |
|
|
"""Get files from git tree""" |
|
|
res = {} |
|
|
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: |
|
|
if repo.bare: |
|
|
return |
|
|
return |
|
|
for entry in repo.commit().tree.traverse(): |
|
|
|
|
|
|
|
|
for entry in tree.traverse(): |
|
|
file = entry.path |
|
|
file = entry.path |
|
|
root = os.path.dirname(file) |
|
|
root = os.path.dirname(file) |
|
|
if not file.endswith('.ebuild'): |
|
|
if not file.endswith('.ebuild'): |
|
|
continue |
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
if creldir not in file: |
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
p1 = os.path.split(root) |
|
|
p1 = os.path.split(root) |
|
|
p2 = os.path.split(p1[0]) |
|
|
p2 = os.path.split(p1[0]) |
|
|
pkg = os.path.join(p2[1], p1[1]) |
|
|
pkg = os.path.join(p2[1], p1[1]) |
|
|
@ -41,7 +51,7 @@ def get_packages_from_tree(): |
|
|
if pkg in res: |
|
|
if pkg in res: |
|
|
res[pkg]["versions"].append(match.groups()[0]) |
|
|
res[pkg]["versions"].append(match.groups()[0]) |
|
|
else: |
|
|
else: |
|
|
metadata = get_metadata(root) |
|
|
|
|
|
|
|
|
metadata = get_metadata(os.path.join(overroot, root)) |
|
|
if metadata is None: |
|
|
if metadata is None: |
|
|
metadata = {} |
|
|
metadata = {} |
|
|
res[pkg] = metadata |
|
|
res[pkg] = metadata |
|
|
|