README.txt
[app.Builder.js] / gtkrun.js
index 17d1e1e..5fcb5d8 100644 (file)
--- a/gtkrun.js
+++ b/gtkrun.js
@@ -38,24 +38,39 @@ Vte = imports.gi.Vte;
 
 File = imports.File.File;
 
+XObject = imports.XObject.XObject;
+//XObject.debug = true;
 Gtk.init(Seed.argv);
-
+imports.searchPath.push('/'); // allow global paths..
 // error checking todo..
-var files = Files.list(Seed.argv[2]);
+var files = File.list(Seed.argv[2]);
 var olist = [];
 
 var gtkbuilder = false;
 files.forEach(function(f) {
-    if (!f.match(/\.bjs$/)) {
-        continue;
+    var fp = Seed.argv[2] + '/' + f;
+    if (!fp.match(/\.bjs$/)) {
+        return;
+    }
+    var js = fp.replace(/\.bjs$/, '.js');
+    if (File.isFile(js)) {
+        // check file time.. = bjs is less than compiled file..
+        if (File.mtime(fp) < File.mtime(js)) {
+            print ("LOADING" + js);
+            olist.push(imports[js]);
+            return;
+        }
+        
+        
     }
-    if (File.exist(f.replace(/\.bjs$/, '.js'))) {
-        olist.push(imports[f.replace(/\.bjs$/, '.js')]);
-        continue;
+    var gtkbuilder =  new imports.Builder.Provider.File.Gtk.Gtk({ path : fp });
+    gtkbuilder.loadItems(function() { });
+    print ("COMPILING" + js);
+    var fn = gtkbuilder.saveJS();
+    if (fn === false) { // skip files that do not contain anythng!
+        return;
     }
-    var gtkbuilder  new imports.Builder.Provider.File.Gtk.Gtk({ path : f });
-    gtkbuilder.saveJS();
-    olist.push(imports[f.replace(/\.bjs$/, '.js')]);
+    olist.push(imports[fn]);
     
     
 });