UNPKG

sesterce-cli

Version:

A powerful command-line interface tool for managing Sesterce Cloud services. Sesterce CLI provides easy access to GPU cloud instances, AI inference services, container registries, and SSH key management directly from your terminal.

62 lines (52 loc) 1.65 kB
import { createRegistry } from "@/modules/registries/use-cases/create-registry"; import { input } from "@inquirer/prompts"; import type { Command } from "commander"; export function createRegistryCreateCommand(registryCommand: Command) { registryCommand .command("create") .description("Create a new registry") .action(async () => { const name = await input({ message: "Registry name", default: "my-registry", required: true, }); const url = await input({ message: "Registry URL", required: true, default: "docker.io/library/user/image:tag", validate: (value) => { // Regex to validate docker.io URLs const dockerIoRegex = /^docker\.io\/([a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*)\/([a-zA-Z0-9_-]+)(?::([a-zA-Z0-9_.-]+))?$/; if (!dockerIoRegex.test(value)) { return "Please enter a valid docker.io URL format: docker.io/username/repo/image[:tag]"; } return true; }, }); const username = await input({ message: "Registry username", required: true, }); const password = await input({ message: "Registry password", required: true, }); console.log("Creating registry..."); const result = await createRegistry.execute({ name, url, username, password, }); if (result.isLeft()) { console.error(result.value.message); return; } console.log( "Registry created successfully! Registry ID: ", result.value._id ); }); }