X-Git-Url: http://git.roojs.org/?p=app.Builder.js;a=blobdiff_plain;f=src%2FApplication.vala;h=2892ae309ec1533cf88c46c9cdf31cb5a6c2a921;hp=854f50971f751c80aa75b843f87f645bbdcb8402;hb=HEAD;hpb=fc21b7d6e10764915823d17fdefb96a8b1c398ca diff --git a/src/Application.vala b/src/Application.vala index 854f50971..2892ae309 100644 --- a/src/Application.vala +++ b/src/Application.vala @@ -3,6 +3,8 @@ public class AppSettings : Object { + + // what are we going to have as settings? public string roo_html_dir { get; set; } @@ -42,6 +44,43 @@ 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, @@ -59,8 +98,12 @@ 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 @@ -68,16 +111,30 @@ configDirectory(); this.settings = AppSettings.factory(); - + 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); } @@ -101,11 +158,9 @@ return dirname; } - + } - - - +