Adding method process and publish to mimic the old scripts stages to publish.
[treecutter.git] / src / tree-cutter.py
index cf1ecb0c7e5beb1c1237888e28393e944e7b1ead..37b893a0961529fcdb66b230f5bb9d68f0e83e31 100755 (executable)
@@ -295,6 +295,11 @@ class Sitemap():
         tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link))
         self._tree.add(tokens,Link(link))
 
+    def write_map(self):
+        f = open(self._file,'w')
+        f.write('\n'.join(link.link() for link in self._tree))
+        f.close()
+
     def read_map(self):
         try:
             f = open(self._file)
@@ -308,12 +313,44 @@ class Sitemap():
     def set(self):
         return set(link.link() for link in self._tree)
 
+    def process(self):
+        t1 = time.time()
+        for link in self._tree:
+            link.prepare()
+        t2 = time.time()
+        print "Prepare  [%5.2f s]" % (round(t2-t1,2))
+        sitelang = set()
+        for link in self._tree:
+            sitelang = lang.union(set(link.languages()))
+        t3 = time.time()
+        print "Language [%5.2f s]" % (round(t3-t2,2))
+        for link in self._tree:
+            link.render()
+        t4 = time.time()
+        print "Render   [%5.2f s]" % (round(t4-t3,2))
+        for link in self._tree:
+            link.template(self)
+        t5 = time.time()
+        print "Template [%5.2f s]" % (round(t5-t4,2))
+        sm = {}
+        for l in sitelang:
+            sm[l] = Page((l,'/sitemap'))
+            sm[l].set_article(self.gen_menu(l,None,"tree sitemap"))
+            sm[l].template(self)
+        t6 = time.time()
+        print "Sitemap [%5.2f s]" % (round(t6-t5,2))
+
     def graph(self):
         self._tree.graph()
 
     def gen_menu(self,lang,page,cssclass):
         return self._tree.menu(lang,page,cssclass)
 
+    def publish(self):
+        publish(tmptarget, args.output)
+        publish(args.style+"css", args.output)
+        publish(args.style+"images",args.output)
+
 def generateSitemap():
     sitemap = []
     try:
@@ -506,13 +543,20 @@ missing = dir_.set() - sitemap.set()
 removed = sitemap.set() - dir_.set()
 for page in removed:
     print removed+' pages missing!!'
-
 for page in missing:
     print 'adding missing page '+page
-    sitemap.add_page(page)
-
+    sitemap.add_link(page)
+if len(missing & removed) != 0:
+    print 'writing new sitemap - please adjust if needed'
+    sitemap.write_map()
 sitemap.graph()
 
+sitemap.process()
+
+t1 = time.time()
+sitemap.publish()
+t2 = time.time()
+print "Publish  [%5.2f s]" % (round(t2-t1,2))
 
 sitemap = generateSitemap()
 tmptarget = tempfile.mkdtemp()+'/'