add confirmation for rules removal
This commit is contained in:
@@ -519,6 +519,17 @@ function registerCommands(programInstance) {
|
|||||||
.flatMap((b) => b.split(',').map((s) => s.trim()))
|
.flatMap((b) => b.split(',').map((s) => s.trim()))
|
||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
|
|
||||||
|
if (action === 'remove') {
|
||||||
|
const ui = await import('./ui.js');
|
||||||
|
const confirmed = await ui.confirmRulesRemove(expandedBrands);
|
||||||
|
if (!confirmed) {
|
||||||
|
console.log(chalk.yellow('Aborted: No rules were removed.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// (removed duplicate projectDir, brands check, and expandedBrands parsing)
|
||||||
|
|
||||||
const removalResults = [];
|
const removalResults = [];
|
||||||
|
|
||||||
for (const brand of expandedBrands) {
|
for (const brand of expandedBrands) {
|
||||||
|
|||||||
@@ -1725,6 +1725,36 @@ IMPORTANT: Make sure to include an analysis for EVERY task listed above, with th
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Confirm removing brand rules (destructive operation)
|
||||||
|
* @param {string[]} brands - Array of brand names to remove
|
||||||
|
* @returns {Promise<boolean>} - Promise resolving to true if user confirms, false otherwise
|
||||||
|
*/
|
||||||
|
async function confirmRulesRemove(brands) {
|
||||||
|
const brandList = brands
|
||||||
|
.map((b) => b.charAt(0).toUpperCase() + b.slice(1))
|
||||||
|
.join(', ');
|
||||||
|
console.log(
|
||||||
|
boxen(
|
||||||
|
chalk.yellow(
|
||||||
|
`WARNING: This will permanently delete all rules and configuration for: ${brandList}.
|
||||||
|
This will remove the entire .[brand] directory for each selected brand.\n\nAre you sure you want to proceed?`
|
||||||
|
),
|
||||||
|
{ padding: 1, borderColor: 'yellow', borderStyle: 'round' }
|
||||||
|
)
|
||||||
|
);
|
||||||
|
const inquirer = await import('inquirer');
|
||||||
|
const { confirm } = await inquirer.default.prompt([
|
||||||
|
{
|
||||||
|
type: 'confirm',
|
||||||
|
name: 'confirm',
|
||||||
|
message: 'Type y to confirm, or n to abort:',
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
return confirm;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Confirm overwriting existing tasks.json file
|
* Confirm overwriting existing tasks.json file
|
||||||
* @param {string} tasksPath - Path to the tasks.json file
|
* @param {string} tasksPath - Path to the tasks.json file
|
||||||
@@ -1991,5 +2021,6 @@ export {
|
|||||||
confirmTaskOverwrite,
|
confirmTaskOverwrite,
|
||||||
displayApiKeyStatus,
|
displayApiKeyStatus,
|
||||||
displayModelConfiguration,
|
displayModelConfiguration,
|
||||||
displayAvailableModels
|
displayAvailableModels,
|
||||||
|
confirmRulesRemove
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user