X-Git-Url: https://git.phdru.name/?p=phdru.name%2Fphdru.name.git;a=blobdiff_plain;f=gen-sitemap.py;h=1afe424131947fac5bd56bb175d6ab734661fb71;hp=d57d42230f4721c19d891f3749c8f2e1fd1c50b6;hb=5107d4f2a2139f5437eac462db3e80e7f58558f3;hpb=83323dad7ee3deefd87858aa5d93e0bef16c65ae diff --git a/gen-sitemap.py b/gen-sitemap.py index d57d422..1afe424 100755 --- a/gen-sitemap.py +++ b/gen-sitemap.py @@ -5,17 +5,31 @@ from fnmatch import fnmatch import os parser = argparse.ArgumentParser(description='Generate sitemap') +parser.add_argument('-x', '--exclude', action='append', + help='exclude directories (pattern)') parser.add_argument('root_dir', help='Root dicrectory') args = parser.parse_args() +exclude = [] +for pat in args.exclude: + exclude.append(pat) + if not pat.endswith('/*'): + exclude.append(pat + '/*') + os.chdir(args.root_dir) fullpath = os.getcwd() fp_len = len(fullpath) for dirpath, dirs, files in sorted(os.walk(fullpath)): - dirpath = dirpath[fp_len:] - if not dirpath: - continue - parts = dirpath.split('/') - level = len(parts) - 2 - print ' ' * level + parts[-1] + try: + dirpath = dirpath[fp_len:] + if not dirpath: + continue + for pat in exclude: + if fnmatch(dirpath, pat): + raise StopIteration + parts = dirpath.split('/') + level = len(parts) - 2 + print ' ' * level + parts[-1] + except StopIteration: + pass