UNPKG

redirector-cli

Version:

Global CLI tool for managing Redirector backend services with Docker Compose

62 lines 2.67 kB
"use strict"; 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