From 5107d4f2a2139f5437eac462db3e80e7f58558f3 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sun, 15 Mar 2015 23:30:18 +0300 Subject: [PATCH] gen-sitemap: exclude uninteresting directories --- gen-sitemap | 8 +++++++- gen-sitemap.py | 26 ++++++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/gen-sitemap b/gen-sitemap index c78fcd9..9eba5ef 100755 --- a/gen-sitemap +++ b/gen-sitemap @@ -1,2 +1,8 @@ #! /bin/sh -exec ./gen-sitemap.py ../htdocs/phdru.name +exec ./gen-sitemap.py \ + -x /Bookmarks/split \ + -x /Graphics \ + -x /Russian/blog/\* \ + -x /Software/Python/\* \ + -x /Software/dotfiles/\* \ + ../htdocs/phdru.name 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 -- 2.39.2