/** * Servers command for CLI. * * @module */ import { isErr } from "@mks2508/no-throw"; import chalk from "chalk"; import { getCoolifyService } from "../../coolify/index.js"; import { createTable } from "../../utils/format.js"; /** * Servers command handler. */ export async function serversCommand(_options: { full?: boolean } = {}) { const coolify = getCoolifyService(); const initResult = await coolify.init(); if (isErr(initResult)) { console.error(chalk.red(`Error: ${initResult.error.message}`)); return; } const result = await coolify.listServers(); if (isErr(result)) { console.error(chalk.red(`Error: ${result.error.message}`)); return; } const servers = result.value; if (servers.length === 0) { console.log(chalk.yellow("No servers found")); return; } const table = createTable(["UUID", "Name", "IP", "Status"], [28, 25, 20, 15]); for (const server of servers) { const statusColor = server.is_usable ? chalk.green : chalk.red; table.push([ server.uuid, server.name, server.ip || "N/A", statusColor(server.is_usable ? "● Usable" : "○ Unusable"), ]); } console.log(table.toString()); console.log(chalk.gray(`Total: ${servers.length} server(s)`)); }