diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GerritServer.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GerritServer.java index a9ce827843..de707964b1 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GerritServer.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GerritServer.java @@ -84,7 +84,8 @@ class GerritServer { File tmp = TempFileUtil.createTempDirectory(); Init init = new Init(); int rc = init.main(new String[] { - "-d", tmp.getPath(), "--batch", "--no-auto-start"}); + "-d", tmp.getPath(), "--batch", "--no-auto-start", + "--skip-plugins"}); if (rc != 0) { throw new RuntimeException("Couldn't initialize site"); } diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Init.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Init.java index 0f0b2088ac..ae1ab71b40 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Init.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Init.java @@ -70,6 +70,9 @@ public class Init extends SiteProgram { @Option(name = "--no-auto-start", usage = "Don't automatically start daemon after init") private boolean noAutoStart; + @Option(name = "--skip-plugins", usage = "Don't install plugin") + private boolean skipPlugins = false; + @Option(name = "--list-plugins", usage = "List available plugins") private boolean listPlugins; @@ -90,22 +93,25 @@ public class Init extends SiteProgram { ErrorLogFile.errorOnlyConsole(); final SiteInit init = createSiteInit(); - final List plugins = InitPlugins.listPlugins(init.site); - ConsoleUI ui = ConsoleUI.getInstance(false); - verifyInstallPluginList(ui, plugins); - if (listPlugins) { - if (!plugins.isEmpty()) { - ui.message("Available plugins:\n"); - for (PluginData plugin : plugins) { - ui.message(" * %s version %s\n", plugin.name, plugin.version); + if (!skipPlugins) { + final List plugins = InitPlugins.listPlugins(init.site); + ConsoleUI ui = ConsoleUI.getInstance(false); + verifyInstallPluginList(ui, plugins); + if (listPlugins) { + if (!plugins.isEmpty()) { + ui.message("Available plugins:\n"); + for (PluginData plugin : plugins) { + ui.message(" * %s version %s\n", plugin.name, plugin.version); + } + } else { + ui.message("No plugins found.\n"); } - } else { - ui.message("No plugins found.\n"); + return 0; } - return 0; } init.flags.autoStart = !noAutoStart && init.site.isNew; + init.flags.skipPlugins = skipPlugins; final SiteRun run; try { diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitFlags.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitFlags.java index adbb03ab19..267b41a147 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitFlags.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitFlags.java @@ -34,10 +34,14 @@ public class InitFlags { /** Run the daemon (and open the web UI in a browser) after initialization. */ public boolean autoStart; + /** Skip plugins */ + public boolean skipPlugins; + public final FileBasedConfig cfg; public final FileBasedConfig sec; public final List installPlugins; + @Inject InitFlags(final SitePaths site, final @InstallPlugins List installPlugins) throws IOException, diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java index e71f3d17e0..1c2d024558 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java @@ -75,6 +75,10 @@ public class SitePathInitializer { mkdir(site.data_dir); for (InitStep step : steps) { + if (step instanceof InitPlugins + && flags.skipPlugins) { + continue; + } step.run(); }