resources/RooUsage.txt
[app.Builder.js] / src / Application.vala
index d8a520a..2892ae3 100644 (file)
@@ -3,6 +3,8 @@
        public class AppSettings : Object
        {
 
+               
+               
                // what are we going to have as settings?
                public string roo_html_dir { get; set; }
 
        
        public class BuilderApplication : Gtk.Application
        {
+               
+               // options - used when builder is run as a compiler
+               // we have to spawn ourself as a compiler as just running libvala
+               // as a task to check syntax causes memory leakage..
+               // 
+               const OptionEntry[] options = {
+               
+                       
+                       { "project", 0, 0, OptionArg.STRING, ref opt_compile_project, "Compile a project", null },
+                       { "target", 0, 0, OptionArg.STRING, ref opt_compile_target, "Target to build", null },
+                       { "skip-file", 0, 0, OptionArg.STRING, ref opt_compile_skip ,"For test compiles do not add this (usually used in conjunction with add-file ", null },
+                       { "add-file", 0, 0, OptionArg.STRING, ref opt_compile_add, "Add this file to compile list", null },
+                       { "output", 0, 0, OptionArg.STRING, ref opt_compile_output, "output binary file path", null },
+                       { "debug", 0, 0, OptionArg.NONE, ref opt_debug, "Show debug messages", null },
+            
+            // some testing code.
+            { "list-projects", 0, 0,  OptionArg.NONE, ref opt_list_projects, "List Projects", null },
+            { "list-files", 0, 0,  OptionArg.NONE, ref  opt_list_files, "List Files (in a project", null},
+            { "bjs", 0, 0, OptionArg.STRING, ref opt_bjs_compile, "convert bjs file", null },
+            { "bjs-target", 0, 0, OptionArg.STRING, ref opt_bjs_compile_target, "convert bjs file to tareet  : vala / js", null },
+            
+            
+                       { null }
+               };
+               public static string opt_compile_project;
+               public static string opt_compile_target;
+               public static string opt_compile_skip;
+               public static string opt_compile_add;
+               public static string opt_compile_output;
+        public static string opt_bjs_compile;
+        public static string opt_bjs_compile_target;
+               public static bool opt_debug = false;
+               public static bool opt_list_projects = false;
+               public static bool opt_list_files = false;
+               
+               public static string _self;
+               
                enum Target {
                    INT32,
                    STRING,
                public AppSettings settings = null;
 
        
-               public BuilderApplication ()
+               public BuilderApplication (  string[] args)
                {
+                       
+                       _self = FileUtils.read_link("/proc/self/exe");
+                       GLib.debug("SELF = %s", _self);
+                       
                        Object(
                               application_id: "org.roojs.app-builder",
                                flags: ApplicationFlags.FLAGS_NONE
                                         
                        configDirectory();
                        this.settings = AppSettings.factory();  
-
-                       this.initResources(true); 
-               
+                       var opt_context = new OptionContext ("Application Builder");
+                       
+                       try {
+                               opt_context.set_help_enabled (true);
+                               opt_context.add_main_entries (options, null);
+                               opt_context.parse (ref args);
+                                
+                               
+                       } catch (OptionError e) {
+                               stdout.printf ("error: %s\n", e.message);
+                               stdout.printf ("Run '%s --help' to see a full list of available command line options.\n %s", 
+                                                        args[0], opt_context.get_help(true,null));
+                               GLib.Process.exit(Posix.EXIT_FAILURE);
+                                
+                       }
 
                }
 
 
                
-               public static BuilderApplication  singleton()
+               public static BuilderApplication  singleton(  string[] args)
                {
                        if (application==null) {
-                               application = new BuilderApplication();
+                               application = new BuilderApplication(  args);
  
                        
                        }
                
                        return dirname;
                }
-        
-               public void initResources(bool force = false)
-               {
-                       // files to fetch from resources.
-                       string[] res = { 
-                               "bootstrap.builder.html",
-                               "roo.builder.html",
-                               "roo.builder.js",
-                               "Gir.overides",
-                               "RooUsage.txt",
-                               "GtkUsage.txt"
-                       };
-                       for (var i = 0; i < res.length; i++ ) { 
-                               this.fetchResource(res[i], force);
-                       }
-                       
-                       this.fetchResourceFrom (
-                               "http://git.roojs.org/?p=roojs1;a=blob_plain;f=docs/json/roodata.json",
-                               "roodata.json",
-                               force
-                        );
-                       
-
-               }
-               public void fetchResource(string res, bool force) {
-                       if (!force && FileUtils.test(configDirectory() + "/resources/" + res, FileTest.EXISTS)) {
-                               return;
-                       }
-                       this.fetchResourceFrom(
-                              "http://git.roojs.org/?p=app.Builder.js;a=blob_plain;f=resources/" + res,
-                              res,
-                              force
-                       );
-                       
-
-               }
-
-               public void fetchResourceFrom(string src, string res, bool force) {
-                       if (!force && FileUtils.test(configDirectory() + "/resources/" + res, FileTest.EXISTS)) {
-                               return;
-                       }
-                       // fetch...
-                       print("downloading %s \nto : %s\n", src,res);
-                       var session = new Soup.Session ();
-                       session.user_agent = "App Builder ";
-                       var message = new Soup.Message ("GET", 
-                               src
-                        );
-
-                           // send the HTTP request and wait for response
-                        session.send_message (message);
-
-                           // output the XML result to stdout
-                       FileUtils.set_contents(
-                              configDirectory() + "/resources/" + res,
-                             (string) message.response_body.data
-                        );
-
-
-               }
                
        } 
 
 
-       
-       
-
\ No newline at end of file