bin/findrepos
2022-01-17 08:31:56 +01:00

40 lines
1.2 KiB
Python
Executable File

#!/home/dirk/bin/venv/bin/python
# -*- coding: UTF-8 -*-
import optparse
import os
repolist = []
def findrepos(p, **kwargs):
depth = kwargs.get('depth', 0)
max_depth = kwargs.get('max_depth')
ld = os.listdir(p)
if '.git' in ld:
if os.path.isdir(os.path.join(p, '.git')):
repolist.append(p)
return
else:
for entry in ld:
np = os.path.join(p, entry)
if os.path.isdir(np):
findrepos(np, depth=depth+1, max_depth=max_depth)
if __name__ == "__main__":
parser = optparse.OptionParser("usage: %%prog target_path [opions]")
parser.add_option("-d", "--depth", dest="depth", default=None, type="int", help="Folder depth to search for a repo")
parser.add_option("-p", "--human-readable", dest="human_readable", action="store_true", default=False, help="Print a human readable list")
(options, args) = parser.parse_args()
if len(args) != 1:
parser.print_help()
else:
findrepos(args[0])
repolist.sort()
if options.human_readable:
print('- ' + '\n- '.join(repolist), '\n')
else:
print(' '.join(repolist))