redirector-cli
Version:
Global CLI tool for managing Redirector backend services with Docker Compose
71 lines • 2.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resetCommand = resetCommand;
const inquirer_1 = __importDefault(require("inquirer"));
const logger_1 = require("../utils/logger");
const config_1 = require("../utils/config");
const docker_1 = require("../utils/docker");
async function resetCommand(options) {
try {
logger_1.Logger.header("Reset Redirector Services");
const projectPath = process.cwd();
// Check if project is initialized
const isInitialized = await config_1.ConfigManager.isRedirectorProject(projectPath);
if (!isInitialized) {
logger_1.Logger.error("No Redirector project found in current directory");
logger_1.Logger.info("Run `redirector setup` first to initialize the project");
process.exit(1);
}
// Load configuration
const config = await config_1.ConfigManager.loadConfig(projectPath);
const docker = new docker_1.DockerManager(config, projectPath);
// Confirmation prompt
if (!options.force && !options.confirm) {
logger_1.Logger.warning("This will permanently delete all data and volumes!");
logger_1.Logger.newLine();
const { confirmed } = await inquirer_1.default.prompt([
{
type: "confirm",
name: "confirmed",
message: "Are you sure you want to reset all services and data?",
default: false,
},
]);
if (!confirmed) {
logger_1.Logger.info("Reset cancelled");
return;
}
}
// Show what will be reset
logger_1.Logger.info("Resetting the following:");
logger_1.Logger.list([
"Stop all running containers",
"Remove all containers",
"Remove all volumes and data",
"Remove orphaned containers",
]);
logger_1.Logger.newLine();
// Check current status
const containers = await docker.getStatus();
if (containers.length > 0) {
logger_1.Logger.info(`Found ${containers.length} container(s) to clean up`);
}
// Reset services
await docker.resetServices();
logger_1.Logger.success("All services and data have been reset successfully!");
logger_1.Logger.newLine();
logger_1.Logger.subheader("Next Steps:");
logger_1.Logger.list([
"`redirector start` - Start fresh services",
"`redirector setup` - Reconfigure the project",
]);
}
catch (error) {
logger_1.Logger.error(`Failed to reset services: ${error}`);
process.exit(1);
}
}
//# sourceMappingURL=reset.js.map