Skip to content

Commit

Permalink
Add confirmation prompt and existence of environments
Browse files Browse the repository at this point in the history
  • Loading branch information
rebeccahum committed Nov 22, 2023
1 parent c0a3e77 commit 3698a7f
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"vip-dev-env-start": "dist/bin/vip-dev-env-start.js",
"vip-dev-env-stop": "dist/bin/vip-dev-env-stop.js",
"vip-dev-env-logs": "dist/bin/vip-dev-env-logs.js",
"vip-dev-env-purge": "dist/bin/vip-dev-env-purge.js",
"vip-export": "dist/bin/vip-export.js",
"vip-export-sql": "dist/bin/vip-export-sql.js",
"vip-dev-env-sync": "dist/bin/vip-dev-env-sync.js",
Expand Down
22 changes: 22 additions & 0 deletions src/bin/vip-dev-env-purge.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
getEnvTrackingInfo,
handleCLIException,
validateDependencies,
promptForBoolean,
} from '../lib/dev-environment/dev-environment-cli';
import {
destroyEnvironment,
Expand All @@ -30,17 +31,38 @@ const examples = [
usage: `${ DEV_ENVIRONMENT_FULL_COMMAND } purge`,
description: 'Destroys all local dev environments',
},
{
usage: `${ DEV_ENVIRONMENT_FULL_COMMAND } purge --force`,
description: 'Destroys all local dev environments without prompting',
},
];

command()
.option( 'soft', 'Keep config files needed to start an environment intact' )
.option( 'force', 'Removes prompt that verifies if user wants to destroy all environments' )
.examples( examples )
.argv( process.argv, async ( arg, opt ) => {
const allEnvNames = getAllEnvironmentNames();
const lando = await bootstrapLando();
const trackingInfo = { all: true };
await trackEvent( 'dev_env_purge_command_execute', trackingInfo );

if ( allEnvNames.length === 0 ) {
console.log( 'No environments to purge!' );
return;
}

if ( ! opt.force ) {
const purge = await promptForBoolean(
'Are you sure you want to purge ALL existing dev environments?',
true
);

if ( ! purge ) {
return;
}
}

try {
for ( const envName of allEnvNames ) {
const slug = envName;
Expand Down
1 change: 1 addition & 0 deletions src/bin/vip-dev-env.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ command( {
.command( 'shell', 'Spawns a shell in a dev environment' )
.command( 'logs', 'View logs from a local WordPress environment' )
.command( 'sync', 'Pull data from production to local development environment' )
.command( 'purge', 'Destroy all existing environments' )
.argv( process.argv );

0 comments on commit 3698a7f

Please sign in to comment.