commit:     224b76acde7c9242497e53b1ce72448b9a471f8c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 17 06:30:28 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 17 06:30:28 2019 +0000
URL:        https://gitweb.gentoo.org/proj/qa-scripts.git/commit/?id=224b76ac

pkg-newest-commit.py: Support specifying sep work & git tree

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 pkg-newest-commit.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/pkg-newest-commit.py b/pkg-newest-commit.py
index 52372d4..ecd5699 100755
--- a/pkg-newest-commit.py
+++ b/pkg-newest-commit.py
@@ -3,22 +3,29 @@
 import argparse
 import glob
 import os
+import os.path
 import subprocess
 import sys
 
 
 def main(argv):
     argp = argparse.ArgumentParser(prog=argv[0])
+    argp.add_argument('--git-dir', default='.',
+                      help='Path to repo git clone (used for git log)')
+    argp.add_argument('--work-dir', default='.',
+                      help='Path to repo working directory (used to grab '
+                           'package list when no packages specified)')
     argp.add_argument('package', nargs='*',
                       help='List of packages to find (defaults to all)')
     args = argp.parse_args(argv[1:])
 
     packages = set(args.package)
     if not packages:
-        with open('profiles/categories') as f:
+        with open(os.path.join(args.work_dir, 'profiles/categories')) as f:
             for cat in f:
-                packages.update(x.rstrip('/')
-                        for x in glob.glob('{}/*/'.format(cat.strip())))
+                packages.update('/'.join(x.rsplit('/', 3)[-3:-1])
+                                for x in glob.glob(os.path.join(
+                                    args.work_dir, cat.strip(), '*/')))
 
     excludes = frozenset([
         # specify EAPI=0 explicitly
@@ -33,6 +40,7 @@ def main(argv):
     s = subprocess.Popen(['git', 'log', '--date=iso-local', '--name-only',
                           '--diff-filter=AM', '--no-renames',
                           '--pretty=COMMIT|%H|%cd', '**.ebuild'],
+                         cwd=args.git_dir,
                          stdout=subprocess.PIPE)
     for l in s.stdout:
         l = l.decode('utf8').strip()

Reply via email to