[gnome-builder] build: remove gnome-builder-cli and gnome-builder-worker



commit 3137a9a5b4842ffdd29981bf64f4b07665ec821b
Author: Christian Hergert <chergert redhat com>
Date:   Wed Sep 20 00:52:25 2017 -0700

    build: remove gnome-builder-cli and gnome-builder-worker
    
    Having these programs split out was not very useful as we move to a
    flatpak'd world. If we keep everything accessable via --type= then
    we can allow things to work even through 'flatpak run ...'
    
    Since we previously used a "hidden" parameter --type for the plugin
    name, that has been renamed to --plugin= which is arguably a much
    better choice.
    
    Use --type=cli for the cli version and --type=worker for the plugin
    worker version of gnome-builder.
    
    For our old format, you can do something like this in your .bashrc:
    
    Either:
    
      alias ide="gnome-builder --type=cli"
      alias ide="flatpak run org.gnome.Builder --type=cli"
    
    And then:
    
      ide --list-commands

 libide/application/OVERVIEW.md                    |    6 ----
 libide/application/ide-application-command-line.c |   30 +++++++-------------
 libide/application/ide-application-private.h      |    2 +
 libide/application/ide-application.c              |    9 ++++++
 libide/buildui/OVERVIEW.md                        |    7 -----
 libide/workers/ide-worker-manager.c               |   10 +------
 libide/workers/ide-worker-process.c               |    7 +++--
 meson.build                                       |   19 -------------
 src/main.c                                        |   23 ++++++++++++----
 9 files changed, 44 insertions(+), 69 deletions(-)
---
diff --git a/libide/application/OVERVIEW.md b/libide/application/OVERVIEW.md
index 7f9c2e0..6b7d34e 100644
--- a/libide/application/OVERVIEW.md
+++ b/libide/application/OVERVIEW.md
@@ -23,12 +23,6 @@ settings, and a bunch of other stuff.
 This interface is used by plugins to hook into the application once-per UI
 process. They will be loaded at startup, and shutdown with the application.
 
-## ide-application-tool.*
-
-This interface is used by plugins that want to expose a command line too
-via the `gnome-builder-cli` command. You can add your own subcommand
-like `gnome-builder-cli build`.
-
 ## ide-application-command-line.c
 
 This file handles the machinery when we are in command-line mode. This includes
diff --git a/libide/application/ide-application-command-line.c 
b/libide/application/ide-application-command-line.c
index d0a57e4..ae144f5 100644
--- a/libide/application/ide-application-command-line.c
+++ b/libide/application/ide-application-command-line.c
@@ -170,7 +170,7 @@ ide_application_local_command_line (GApplication   *application,
   const gchar *shortdesc = NULL;
   const gchar *prgname;
   GError *error = NULL;
-  gchar *type = NULL;
+  gchar *plugin = NULL;
   gchar *dbus_address = NULL;
   gboolean standalone = FALSE;
   gboolean version = FALSE;
@@ -200,11 +200,11 @@ ide_application_local_command_line (GApplication   *application,
       &version,
       N_("Show the application’s version") },
 
-    { "type",
+    { "plugin",
       0,
       G_OPTION_FLAG_HIDDEN,
       G_OPTION_ARG_STRING,
-      &type },
+      &plugin },
 
     { "dbus-address",
       0,
@@ -268,7 +268,7 @@ ide_application_local_command_line (GApplication   *application,
   if (g_str_has_prefix (prgname, "lt-"))
     prgname += strlen ("lt-");
 
-  if (g_str_equal (prgname, "gnome-builder-cli"))
+  if (self->mode == IDE_APPLICATION_MODE_TOOL)
     {
       g_assert_cmpstr (entries [0].long_name, ==, "list-commands");
       entries [0].flags = 0;
@@ -291,21 +291,13 @@ ide_application_local_command_line (GApplication   *application,
    * If we are the "cli" program, then we want to setup ourselves for
    * verb style commands and add a commands group for help.
    */
-  if (g_str_equal (prgname, "gnome-builder-cli"))
+  if (self->mode == IDE_APPLICATION_MODE_TOOL)
     {
-      gchar *command_help;
-
-      self->mode = IDE_APPLICATION_MODE_TOOL;
+      g_autofree gchar *command_help = NULL;
 
       g_option_context_set_strict_posix (context, TRUE);
-
       command_help = ide_application_get_command_help (self, TRUE);
       g_option_context_set_summary (context, command_help);
-      g_free (command_help);
-    }
-  else if (g_str_equal (prgname, "gnome-builder-worker"))
-    {
-      self->mode = IDE_APPLICATION_MODE_WORKER;
     }
   else if (strstr (prgname, "test-") != NULL)
     {
@@ -408,9 +400,9 @@ ide_application_local_command_line (GApplication   *application,
     {
       PeasPluginInfo *worker_plugin;
 
-      if (type == NULL)
+      if (plugin == NULL)
         {
-          g_printerr ("%s\n", _("Please provide a worker type"));
+          g_printerr ("%s\n", _("Please provide a worker plugin"));
           *exit_status = EXIT_FAILURE;
           goto cleanup;
         }
@@ -422,11 +414,11 @@ ide_application_local_command_line (GApplication   *application,
           goto cleanup;
         }
 
-      worker_plugin = ide_application_locate_worker (self, type);
+      worker_plugin = ide_application_locate_worker (self, plugin);
 
       if (worker_plugin == NULL)
         {
-          g_printerr ("%s: \"%s\"\n", _("No such worker"), type);
+          g_printerr ("%s: \"%s\"\n", _("No such worker"), plugin);
           *exit_status = EXIT_FAILURE;
           goto cleanup;
         }
@@ -493,7 +485,7 @@ ide_application_local_command_line (GApplication   *application,
   g_application_activate (application);
 
 cleanup:
-  g_clear_pointer (&type, g_free);
+  g_clear_pointer (&plugin, g_free);
   g_clear_pointer (&dbus_address, g_free);
   g_clear_error (&error);
   g_option_context_free (context);
diff --git a/libide/application/ide-application-private.h b/libide/application/ide-application-private.h
index 5ae77d4..7d039b7 100644
--- a/libide/application/ide-application-private.h
+++ b/libide/application/ide-application-private.h
@@ -81,6 +81,8 @@ gboolean ide_application_open_finish                (IdeApplication        *self
                                                      GAsyncResult          *reuslt,
                                                      GError               **error);
 void     _ide_application_init_shortcuts            (IdeApplication        *self);
+void     _ide_application_set_mode                  (IdeApplication        *self,
+                                                     IdeApplicationMode     mode);
 
 G_END_DECLS
 
diff --git a/libide/application/ide-application.c b/libide/application/ide-application.c
index d37e025..9206360 100644
--- a/libide/application/ide-application.c
+++ b/libide/application/ide-application.c
@@ -50,6 +50,15 @@ G_DEFINE_TYPE (IdeApplication, ide_application, DZL_TYPE_APPLICATION)
 
 static GThread *main_thread;
 
+void
+_ide_application_set_mode (IdeApplication     *self,
+                           IdeApplicationMode  mode)
+{
+  g_return_if_fail (IDE_IS_APPLICATION (self));
+
+  self->mode = mode;
+}
+
 static void
 ide_application_make_skeleton_dirs (IdeApplication *self)
 {
diff --git a/libide/buildui/OVERVIEW.md b/libide/buildui/OVERVIEW.md
index bc1473c..43f9efd 100644
--- a/libide/buildui/OVERVIEW.md
+++ b/libide/buildui/OVERVIEW.md
@@ -6,10 +6,3 @@ panel and the build log panel.
 Additionally, it provides the perspective for altering build configurations.
 The configuration providers can use IdeBuildConfigurationView directly or with
 subclasses to allow altering their build configuration.
-
-The ide-build-tool.c provides a command line tool that can execute a build for a
-project when run from the source directory.
- 
-```sh
-gnome-builder-cli build
-```
diff --git a/libide/workers/ide-worker-manager.c b/libide/workers/ide-worker-manager.c
index c3b674c..26e08c5 100644
--- a/libide/workers/ide-worker-manager.c
+++ b/libide/workers/ide-worker-manager.c
@@ -206,20 +206,12 @@ ide_worker_manager_get_worker_process (IdeWorkerManager *self,
   if (worker_process == NULL)
     {
       g_autofree gchar *address = NULL;
-      const gchar *path = PACKAGE_LIBEXECDIR G_DIR_SEPARATOR_S "gnome-builder-worker";
 
       address = g_strdup_printf ("%s,guid=%s",
                                  g_dbus_server_get_client_address (self->dbus_server),
                                  g_dbus_server_get_guid (self->dbus_server));
 
-      /*
-       * If we are running out of tree, rely on PATH to access
-       * gnome-builder-worker from the build directory.
-       */
-      if (g_getenv ("GB_IN_TREE_PLUGINS") != NULL)
-        path = "gnome-builder-worker";
-
-      worker_process = ide_worker_process_new (path, plugin_name, address);
+      worker_process = ide_worker_process_new ("gnome-builder", plugin_name, address);
       g_hash_table_insert (self->plugin_name_to_worker, g_strdup (plugin_name), worker_process);
       ide_worker_process_run (worker_process);
     }
diff --git a/libide/workers/ide-worker-process.c b/libide/workers/ide-worker-process.c
index 5cf5863..2794db6 100644
--- a/libide/workers/ide-worker-process.c
+++ b/libide/workers/ide-worker-process.c
@@ -114,7 +114,7 @@ ide_worker_process_respawn (IdeWorkerProcess *self)
 {
   g_autoptr(GSubprocessLauncher) launcher = NULL;
   g_autoptr(GSubprocess) subprocess = NULL;
-  g_autofree gchar *type = NULL;
+  g_autofree gchar *plugin = NULL;
   g_autofree gchar *dbus_address = NULL;
   g_autoptr(GString) verbosearg = NULL;
   GError *error = NULL;
@@ -127,7 +127,7 @@ ide_worker_process_respawn (IdeWorkerProcess *self)
   g_assert (IDE_IS_WORKER_PROCESS (self));
   g_assert (self->subprocess == NULL);
 
-  type = g_strdup_printf ("--type=%s", self->plugin_name);
+  plugin = g_strdup_printf ("--plugin=%s", self->plugin_name);
   dbus_address = g_strdup_printf ("--dbus-address=%s", self->dbus_address);
 
   verbosearg = g_string_new ("-");
@@ -138,7 +138,8 @@ ide_worker_process_respawn (IdeWorkerProcess *self)
   launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
   args = g_ptr_array_new ();
   g_ptr_array_add (args, self->argv0); /* gnome-builder */
-  g_ptr_array_add (args, type); /* --type= */
+  g_ptr_array_add (args, "--type=worker");
+  g_ptr_array_add (args, plugin); /* --plugin= */
   g_ptr_array_add (args, dbus_address); /* --dbus-address= */
   g_ptr_array_add (args, verbosity > 0 ? verbosearg->str : NULL);
   g_ptr_array_add (args, NULL);
diff --git a/meson.build b/meson.build
index 97bd1ef..19fd9be 100644
--- a/meson.build
+++ b/meson.build
@@ -293,25 +293,6 @@ executable('gnome-builder', gnome_builder_sources,
    dependencies: libide_deps + [libide_dep],
 )
 
-executable('gnome-builder-cli', gnome_builder_sources,
-        gui_app: false,
-        install: true,
-         c_args: exe_c_args,
-      link_args: exe_link_args,
-  install_rpath: pkglibdir_abs,
-   dependencies: libide_deps + [libide_dep],
-)
-
-executable('gnome-builder-worker', gnome_builder_sources,
-        gui_app: false,
-        install: true,
-    install_dir: get_option('libexecdir'),
-         c_args: exe_c_args,
-      link_args: exe_link_args,
-  install_rpath: pkglibdir_abs,
-   dependencies: libide_deps + [libide_dep],
-)
-
 meson.add_install_script('build-aux/meson/meson_post_install.py')
 
 # 'dist' will be used by meson, avoid conflicting
diff --git a/src/main.c b/src/main.c
index f3c3e3c..8d69756 100644
--- a/src/main.c
+++ b/src/main.c
@@ -21,8 +21,12 @@
 #include <ide.h>
 #include <gtksourceview/gtksource.h>
 
+#include "application/ide-application-private.h"
+
 #include "bug-buddy.h"
 
+static IdeApplicationMode early_mode;
+
 static gboolean
 verbose_cb (const gchar  *option_name,
             const gchar  *value,
@@ -34,12 +38,14 @@ verbose_cb (const gchar  *option_name,
 }
 
 static void
-early_verbose_check (gint    *argc,
-                     gchar ***argv)
+early_params_check (gint    *argc,
+                    gchar ***argv)
 {
-  GOptionContext *context;
-  static const GOptionEntry entries[] = {
+  g_autofree gchar *type = NULL;
+  g_autoptr(GOptionContext) context = NULL;
+  GOptionEntry entries[] = {
     { "verbose", 'v', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, verbose_cb },
+    { "type", 0, 0, G_OPTION_ARG_STRING, &type },
     { NULL }
   };
 
@@ -48,7 +54,11 @@ early_verbose_check (gint    *argc,
   g_option_context_set_help_enabled (context, FALSE);
   g_option_context_add_main_entries (context, entries, NULL);
   g_option_context_parse (context, argc, argv, NULL);
-  g_option_context_free (context);
+
+  if (g_strcmp0 (type, "worker") == 0)
+    early_mode = IDE_APPLICATION_MODE_WORKER;
+  else if (g_strcmp0 (type, "cli") == 0)
+    early_mode = IDE_APPLICATION_MODE_TOOL;
 }
 
 static void
@@ -95,7 +105,7 @@ main (int   argc,
   bug_buddy_init ();
 
   ide_log_init (TRUE, NULL);
-  early_verbose_check (&argc, &argv);
+  early_params_check (&argc, &argv);
 
   early_ssl_check ();
 
@@ -120,6 +130,7 @@ main (int   argc,
   g_type_ensure (G_TYPE_ZLIB_DECOMPRESSOR);
 
   app = ide_application_new ();
+  _ide_application_set_mode (app, early_mode);
   ret = g_application_run (G_APPLICATION (app), argc, argv);
   g_clear_object (&app);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]