]> git.phdru.name Git - phdru.name/phdru.name.git/commitdiff
gen-sitemap: build tree
authorOleg Broytman <phd@phdru.name>
Sun, 15 Mar 2015 20:32:23 +0000 (23:32 +0300)
committerOleg Broytman <phd@phdru.name>
Wed, 23 Dec 2015 15:54:10 +0000 (18:54 +0300)
gen-sitemap.py

index 1afe424131947fac5bd56bb175d6ab734661fb71..1a78a7fb84b8fda32dbfdd1a3712ad8aa922668c 100755 (executable)
@@ -20,6 +20,10 @@ os.chdir(args.root_dir)
 fullpath = os.getcwd()
 fp_len = len(fullpath)
 
+tree = ('', [])
+current_subtree = tree[1]
+save_level = 0
+
 for dirpath, dirs, files in sorted(os.walk(fullpath)):
     try:
         dirpath = dirpath[fp_len:]
@@ -30,6 +34,17 @@ for dirpath, dirs, files in sorted(os.walk(fullpath)):
                 raise StopIteration
         parts = dirpath.split('/')
         level = len(parts) - 2
-        print '    ' * level + parts[-1]
+        if level < save_level:
+            current_subtree = tree[1]
+            for i in range(level):
+                current_subtree = current_subtree[-1][1]
+            current_subtree.append((parts[-1], []))
+        elif level == save_level:
+            current_subtree.append((parts[-1], []))
+        elif level > save_level:
+            assert level - save_level == 1
+            current_subtree = current_subtree[-1][1]
+            current_subtree.append((parts[-1], []))
+        save_level = level
     except StopIteration:
         pass