Skip to content

Commit 0609fe8

Browse files
authored
feat(dashmate)!: confirm a node reset (#2160)
1 parent 5aab08d commit 0609fe8

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

packages/dashmate/src/commands/reset.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,49 @@ export default class ResetCommand extends ConfigBaseCommand {
3838
) {
3939
const tasks = new Listr(
4040
[
41+
{
42+
enabled: (ctx) => !ctx.isForce,
43+
task: async (ctx, task) => {
44+
let message;
45+
if (ctx.isHardReset) {
46+
if (ctx.keepData) {
47+
message = 'Are you sure you want to reset your node configuration? Data will be'
48+
+ ' kept.';
49+
if (ctx.isPlatformOnlyReset) {
50+
message = 'Are you sure you want to reset platform related configuration? Data'
51+
+ ' will be kept';
52+
}
53+
} else {
54+
message = 'Are you sure you want to reset your node data and configuration?';
55+
if (ctx.isPlatformOnlyReset) {
56+
message = 'Are you sure you want to reset platform related data and configuration?';
57+
}
58+
}
59+
} else if (ctx.keepData) {
60+
message = 'Are you sure you want to reset docker containers?';
61+
if (ctx.isPlatformOnlyReset) {
62+
message = 'Are you sure you want to reset platform related docker containers?';
63+
}
64+
} else {
65+
message = 'Are you sure you want to reset your node data?';
66+
if (ctx.isPlatformOnlyReset) {
67+
message = 'Are you sure you want to reset platform related data?';
68+
}
69+
}
70+
71+
const agreement = await task.prompt({
72+
type: 'toggle',
73+
name: 'confirm',
74+
message,
75+
enabled: 'Yes',
76+
disabled: 'No',
77+
});
78+
79+
if (!agreement) {
80+
throw new Error('Reset operation was declined');
81+
}
82+
},
83+
},
4184
{
4285
title: `Reset ${config.getName()} node`,
4386
task: () => resetNodeTask(config),

0 commit comments

Comments
 (0)