You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.2 KiB
Python

5 years ago
#!/usr/bin/python3
5 years ago
import os
5 years ago
from functools import reduce
5 years ago
def get_mds(path):
results = []
for i in os.listdir(path):
if i[0] == '.':
continue
if os.path.isdir(i):
results = results + get_mds(os.path.join(path, i))
else:
name, extension = os.path.splitext(i)
if extension == ".md":
results.append(os.path.join(path, name))
return results
def mkformat(files):
result = []
5 years ago
files = [list(os.path.split(i)) for i in files]
files = path_dict(files)
for key in files:
if 'README' in files[key]:
result.append(f'## [{key}]({key})')
else:
result.append(f'## {key}')
for name in [i for i in sorted(files[key]) if i != 'README']:
5 years ago
result.append(f'+ [{name}]({os.path.join(key, name)})')
result.append('')
return result
5 years ago
5 years ago
def path_dict(files):
di = dict()
for x, y in files:
if not di.get(x):
di[x] = []
di[x].append(y)
return di
prefix = []
if os.path.exists('PREFIX.md'):
with open('PREFIX.md') as p:
prefix = p.readlines()
5 years ago
files = sorted([i[2:] for i in get_mds('.') if i != './README'])
5 years ago
with open('README.md', 'w') as f:
to_write = mkformat(files)
5 years ago
to_write = [i + '\n' for i in to_write]
to_write = prefix + to_write
5 years ago
f.writelines(to_write)