[svn-commits] dlee: branch dlee/ari-event-remodel2 r392402 - /team/dlee/ari-event-remodel2/...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Jun 21 00:34:38 CDT 2013


Author: dlee
Date: Fri Jun 21 00:34:36 2013
New Revision: 392402

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=392402
Log:
make ari-stubs: only overwrite files when they change.

This helps a tiny bit with useless rebuilds, but also helps make the build
a bit less noisy when you're just changing one file.

Modified:
    team/dlee/ari-event-remodel2/rest-api-templates/transform.py

Modified: team/dlee/ari-event-remodel2/rest-api-templates/transform.py
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel2/rest-api-templates/transform.py?view=diff&rev=392402&r1=392401&r2=392402
==============================================================================
--- team/dlee/ari-event-remodel2/rest-api-templates/transform.py (original)
+++ team/dlee/ari-event-remodel2/rest-api-templates/transform.py Fri Jun 21 00:34:36 2013
@@ -18,7 +18,9 @@
 
 import os.path
 import pystache
-
+import tempfile
+import filecmp
+import shutil
 
 class Transform(object):
     """Transformation for template to code.
@@ -46,8 +48,14 @@
         """
         dest_file = pystache.render(self.dest_file_template, model)
         dest_file = os.path.join(dest_dir, dest_file)
-        if os.path.exists(dest_file) and not self.overwrite:
+        dest_exists = os.path.exists(dest_file)
+        if dest_exists and not self.overwrite:
             return
-        print "Rendering %s" % dest_file
-        with open(dest_file, "w") as out:
+        tmp_file = tempfile.mkstemp()
+        with tempfile.NamedTemporaryFile() as out:
             out.write(renderer.render(self.template, model))
+            out.flush()
+
+            if not dest_exists or not filecmp.cmp(out.name, dest_file):
+                print "Writing %s" % dest_file
+                shutil.copyfile(out.name, dest_file)




More information about the svn-commits mailing list