Skip to content

Commit ab39a69

Browse files
add root argument
1 parent 455da30 commit ab39a69

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

index_generator/__main__.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def main():
2323
help='Default output filename.')
2424
parser.add_argument('--print', '-P', action='store_true', default=False, help='Whether to print to stdout.')
2525
parser.add_argument('--depth', '-d', type=int, default=0, help='Set cutoff depth.')
26+
parser.add_argument('--root', '-r', type=str, default='/', help='Set base root dir.')
2627
parser.add_argument('path', type=str, default='', help='Path', nargs='?')
2728
arguments = parser.parse_args()
2829
app(arguments)
@@ -38,19 +39,19 @@ def app(args):
3839
print('See: index-generator --help')
3940
sys.exit(0)
4041
if args.no_recursive:
41-
generate_once(args.template, args.path, os.listdir(args.path), args.name, args.print)
42+
generate_once(args.template, args.path, os.listdir(args.path), args.name, args.print, base=args.root)
4243
else:
43-
generate_recursively(args.template, args.path, args.name, args.print, args.depth)
44+
generate_recursively(args.template, args.path, args.name, args.print, args.depth, base=args.root)
4445

4546

46-
def generate_once(template_dir, root, files, name, if_print):
47+
def generate_once(template_dir, root, files, name, if_print, base='/'):
4748
environment = jinja2.Environment(
4849
loader=jinja2.PackageLoader('index_generator', template_dir),
4950
autoescape=jinja2.select_autoescape(['html', 'htm'])
5051
)
5152
template = environment.get_template(name)
5253

53-
entries = list(map(lambda f1: Entry(f1, root), files))
54+
entries = list(map(lambda f1: Entry(f1, root, base=base), files))
5455
# entries.sort(key=lambda x: x.isDir, reverse=True)
5556

5657
filelist = []
@@ -66,7 +67,7 @@ def generate_once(template_dir, root, files, name, if_print):
6667
'isDir': entry.isDir
6768
})
6869
html = template.render(ig={
69-
'root': '/'+root.lstrip('.*/'),
70+
'root': base + root.lstrip('.*/'),
7071
'files': filelist,
7172
'generator': {
7273
'name': APP_NAME,
@@ -78,11 +79,11 @@ def generate_once(template_dir, root, files, name, if_print):
7879
if if_print:
7980
print(html)
8081
else:
81-
with open(root+os.path.sep+name, 'w') as f:
82+
with open(root + os.path.sep + name, 'w') as f:
8283
print(html, file=f)
8384

8485

85-
def generate_recursively(template_dir, path, name, if_print, max_depth=0):
86+
def generate_recursively(template_dir, path, name, if_print, max_depth=0, base='/'):
8687
for root, dirs, files in os.walk(path):
8788
if max_depth != 0 and root.count(os.sep) >= max_depth:
8889
dirs.clear()
@@ -98,7 +99,7 @@ def generate_recursively(template_dir, path, name, if_print, max_depth=0):
9899
print('files: {}'.format(files))
99100
print('-----------------------------------------')
100101

101-
generate_once(template_dir, root, dirs+files, name, if_print)
102+
generate_once(template_dir, root, dirs+files, name, if_print, base=base)
102103

103104

104105
if __name__ == '__main__':

index_generator/models/entries.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44

55
class Entry(object):
6-
def __init__(self, file, root):
6+
def __init__(self, file, root, base='/'):
77
path = root + os.path.sep + file
8-
self.path = '/' + path.lstrip('.*/')
8+
self.path = base + path.lstrip('.*/')
99
self.name = os.path.basename(path)
1010
self.mime = mimetypes.guess_type(path)[0]
1111
self.size = os.path.getsize(path)

0 commit comments

Comments
 (0)