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.
73 lines (63 loc) • 2.31 kB
text/typescript
import { Registry } from "@/modules/registries/domain/registry";
import { deleteRegistry } from "@/modules/registries/use-cases/delete-registry";
import { listRegistries } from "@/modules/registries/use-cases/list-registries";
import { search } from "@inquirer/prompts";
import type { Command } from "commander";
const printRegistry = (registry: Registry) => {
return `${registry.name} - ${registry.url} - ${registry.username}`;
};
export function createRegistryDeleteCommand(registryCommand: Command) {
registryCommand
.command("delete")
.description("Delete a registry")
.option(
"-i, --registry-id <registryId>",
"The ID of the registry to delete"
)
.action(async (args) => {
let registryId = args.registryId;
if (!registryId) {
console.log("Loading registries...");
const registriesResult = await listRegistries.execute();
if (registriesResult.isLeft()) {
console.error(registriesResult.value.message);
return;
}
const registries = registriesResult.value;
if (registries.length === 0) {
console.log("No registries found");
return;
}
const selectedRegistry = await search({
message: "Select a registry to update",
source: async (input, { signal }) => {
if (!input) {
return registries.map((registry) => ({
name: printRegistry(registry),
value: registry,
}));
}
return registries
.filter(
(registry) =>
registry.name.toLowerCase().includes(input.toLowerCase()) ||
registry.url.toLowerCase().includes(input) ||
registry.username.toLowerCase().includes(input)
)
.map((registry) => ({
name: printRegistry(registry),
value: registry,
}));
},
});
registryId = selectedRegistry._id;
}
console.log("Deleting registry...");
const result = await deleteRegistry.execute(registryId);
if (result.isLeft()) {
console.error(result.value.message);
return;
}
console.log("Registry deleted successfully!");
});
}