X-Git-Url: http://git.roojs.org/?p=app.Builder.js;a=blobdiff_plain;f=src%2FApplication.vala;h=2892ae309ec1533cf88c46c9cdf31cb5a6c2a921;hp=b72e09f8bbb0e61eb7506524dc8340bcc15be7af;hb=HEAD;hpb=b02fb923b5dab5e2372367cb045f098b635bf140 diff --git a/src/Application.vala b/src/Application.vala index b72e09f8b..2892ae309 100644 --- a/src/Application.vala +++ b/src/Application.vala @@ -3,23 +3,6 @@ public class AppSettings : Object { - // 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 }, - { null } - }; - string opt_compile_project; - string opt_compile_target; - string opt_compile_skip; - string opt_compile_add; // what are we going to have as settings? @@ -61,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, @@ -78,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 @@ -87,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); } @@ -120,11 +158,9 @@ return dirname; } - + } - - - +