redirector-cli
Version:
Global CLI tool for managing Redirector backend services with Docker Compose
62 lines • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logsCommand = logsCommand;
const logger_1 = require("../utils/logger");
const config_1 = require("../utils/config");
const docker_1 = require("../utils/docker");
async function logsCommand(service, options) {
try {
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);
// Validate service name if provided
const targetService = service || options.service;
if (targetService) {
const validServices = ["backend", "postgres"];
if (!validServices.includes(targetService)) {
logger_1.Logger.error(`Invalid service: ${targetService}`);
logger_1.Logger.info(`Valid services: ${validServices.join(", ")}`);
process.exit(1);
}
}
// Check if services are running
const containers = await docker.getStatus();
const runningContainers = containers.filter((c) => c.status.includes("running"));
if (runningContainers.length === 0) {
logger_1.Logger.warning("No running services found");
logger_1.Logger.info("Run `redirector start` to start services first");
return;
}
// Show header
if (options.follow) {
logger_1.Logger.header(`Following ${targetService || "All"} Service Logs`);
logger_1.Logger.info("Press Ctrl+C to stop following logs");
logger_1.Logger.newLine();
}
else {
logger_1.Logger.header(`${targetService || "All"} Service Logs`);
logger_1.Logger.newLine();
}
// Get logs
await docker.getLogs(targetService, options.follow);
}
catch (error) {
if (error instanceof Error && error.message?.includes("SIGINT")) {
// User interrupted with Ctrl+C
logger_1.Logger.newLine();
logger_1.Logger.info("Log following stopped");
return;
}
logger_1.Logger.error(`Failed to get logs: ${error}`);
process.exit(1);
}
}
//# sourceMappingURL=logs.js.map