@forge/cli
13.4.0-next.3-experimental-f258a6d13.4.0-next.5-experimental-016ed9d
out/command-line/register-installation-commands.js~
out/command-line/register-installation-commands.jsModified+17−4
Index: package/out/command-line/register-installation-commands.js
===================================================================
--- package/out/command-line/register-installation-commands.js
+++ package/out/command-line/register-installation-commands.js
@@ -7,26 +7,39 @@
const shared_1 = require("../installations/shared");
const uninstall_command_helpers_1 = require("./uninstall-command-helpers");
const semver_1 = require("semver");
const installation_helper_1 = require("../installations/installation-helper");
+const url_1 = require("url");
const COMMAND_NAME = 'install';
-const registerInstallAppCommand = ({ cmd, controllers: { installController } }) => {
+const registerInstallAppCommand = ({ cmd, controllers: { installController }, services: { siteService } }) => {
cmd
.requireAppId(true)
.environmentOption(true)
.contextOption()
+ .option('-d, --demo-site', cli_shared_1.Text.install.optionDemoSite)
.option('--upgrade [target]', cli_shared_1.Text.install.optionUpgrade)
.option('--confirm-scopes', cli_shared_1.Text.install.optionConfirmScopes, false)
.option('-l, --license [license]', cli_shared_1.Text.install.optionLicense)
.option('--license-modes [licenseModes...]', cli_shared_1.Text.install.optionLicenseModes)
.option('--users-with-access [user...]', cli_shared_1.Text.install.optionUsersWithAccess)
.option('--major-version <majorVersion>', cli_shared_1.Text.install.optionMajorVersion)
- .nonInteractiveOption('--site', '--product', '--environment')
+ .nonInteractiveOption(['--site', '--demo-site'], '--product', '--environment')
.description(cli_shared_1.Text.install.cmd.description)
- .action(async ({ environment, site, product, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive, majorVersion, appIdOverride }) => {
+ .action(async ({ environment, site, product, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive, majorVersion, demoSite, appIdOverride }) => {
+ let installSite = site;
+ if (demoSite) {
+ if (site) {
+ throw new cli_shared_1.UserError(cli_shared_1.Text.install.error.demoSiteWithSite);
+ }
+ const existingDemoSite = await siteService.getExistingSite();
+ if (!existingDemoSite?.siteUrl) {
+ throw new cli_shared_1.UserError(cli_shared_1.Text.install.error.noDemoSite);
+ }
+ installSite = new url_1.URL(existingDemoSite.siteUrl);
+ }
await installController.run({
environment,
- site,
+ site: installSite,
products: product ? [product] : [],
upgrade,
confirmScopes,
license,