resources/RooUsage.txt
[app.Builder.js] / src / Main.vala
index 9bba660..df5d6f4 100644 (file)
@@ -9,7 +9,7 @@ int main (string[] args) {
        
        
        
-    
+       new JsRender.Lang_Class();
 
        var app =  BuilderApplication.singleton(  args);
        
@@ -21,16 +21,83 @@ int main (string[] args) {
                });
        }
        
-    if (BuilderApplication.opt_bjs_compile != null) {
+     
+       if (BuilderApplication.opt_list_projects) {
                 
-               BuilderApplication.compileBjs();
-               
+               //BuilderApplication.compileBjs();
+        Project.Project.loadAll();
+               print("Projects\n %s\n", Project.Project.listAllToString());
+               GLib.Process.exit(Posix.EXIT_SUCCESS);
+       }
+    Project.Project.loadAll();
+    
+    if (BuilderApplication.opt_list_projects) {
+                
+               //BuilderApplication.compileBjs();
+
+               print("Projects\n %s\n", Project.Project.listAllToString());
                GLib.Process.exit(Posix.EXIT_SUCCESS);
        }
+       Project.Project cur_project = null;
+    if (BuilderApplication.opt_compile_project != null) {
+                
+                
+               cur_project = Project.Project.getProjectByHash( BuilderApplication.opt_compile_project);
+               
+               if (cur_project == null) {
+                       GLib.error("invalid project %s, use --list-projects to show project ids",BuilderApplication.opt_compile_project);
+               }
+               cur_project.scanDirs();
+               
+               
+       }
        
+       if (BuilderApplication.opt_list_files) {
+               if (cur_project == null) {
+                       GLib.error("missing project, use --project to select which project");
+               }
+               print("Files for %s\n %s\n", cur_project.name, cur_project.listAllFilesToString());
+               GLib.Process.exit(Posix.EXIT_SUCCESS);
+       }
     
+    if (BuilderApplication.opt_bjs_compile != null) {
+               if (cur_project == null) {
+                       GLib.error("missing project, use --project to select which project");
+               }       
+               var file = cur_project.getByName(BuilderApplication.opt_bjs_compile);
+               if (file == null) {
+                       GLib.error("missing file %s in project %s", BuilderApplication.opt_bjs_compile, cur_project.name);
+               }
+               //BuilderApplication.compileBjs();
+               file.loadItems();
+        var str = file.toSourceCode();
+          
+          
+        if (!BuilderApplication.opt_debug) {
+               print("%s", str);
+               GLib.Process.exit(Posix.EXIT_SUCCESS);
+               }
+               
+               // dump the node tree
+               file.tree.dumpProps();
+               
+               
+        var str_ar = str.split("\n");
+        for(var i =0;i<str_ar.length;i++) {
+               var node = file.tree.lineToNode(i+1);
+               var prop = node == null ? null : node.lineToProp(i+1);
+               print("%d: %s   :  %s\n", 
+                       i+1, 
+                       node == null ? "......"  : (prop == null ? "????????" : prop),
+                       str_ar[i]
+                       );
+        }
+               
+               GLib.Process.exit(Posix.EXIT_SUCCESS);
+       }
+       
     
-       if (BuilderApplication.opt_compile_project != null) {
+       if (BuilderApplication.opt_compile_target != null) {
                 
                Palete.ValaSourceCompiler.buildApplication();
                
@@ -42,12 +109,11 @@ int main (string[] args) {
        GLib.debug("project = %s\n", BuilderApplication.opt_compile_project);
        
        Gtk.init (ref args);
-       
-       
+        
        GtkClutter.init (ref args);
-       new JsRender.Lang_Class();
+
        GLib.Log.set_always_fatal(LogLevelFlags.LEVEL_ERROR | LogLevelFlags.LEVEL_CRITICAL); 
-       Project.Project.loadAll();
+       
     
     
     // respond to other arguments