]> git.phdru.name Git - phdru.name/phdru.name.git/blob - gen-sitemap.py
gen-sitemap: exclude uninteresting directories
[phdru.name/phdru.name.git] / gen-sitemap.py
1 #! /usr/bin/env python
2
3 import argparse
4 from fnmatch import fnmatch
5 import os
6
7 parser = argparse.ArgumentParser(description='Generate sitemap')
8 parser.add_argument('-x', '--exclude', action='append',
9                     help='exclude directories (pattern)')
10 parser.add_argument('root_dir', help='Root dicrectory')
11 args = parser.parse_args()
12
13 exclude = []
14 for pat in args.exclude:
15     exclude.append(pat)
16     if not pat.endswith('/*'):
17         exclude.append(pat + '/*')
18
19 os.chdir(args.root_dir)
20 fullpath = os.getcwd()
21 fp_len = len(fullpath)
22
23 for dirpath, dirs, files in sorted(os.walk(fullpath)):
24     try:
25         dirpath = dirpath[fp_len:]
26         if not dirpath:
27             continue
28         for pat in exclude:
29             if fnmatch(dirpath, pat):
30                 raise StopIteration
31         parts = dirpath.split('/')
32         level = len(parts) - 2
33         print '    ' * level + parts[-1]
34     except StopIteration:
35         pass