#!/usr/bin/env -S deno run --allow-all /** * SZCI - Serve Zone CI/CD Tool * * A command-line tool for streamlining Node.js and Docker workflows * within CI environments, particularly GitLab CI, GitHub CI, and Gitea CI. * * Required Permissions: * - --allow-net: Network access for Docker registries, npm, git operations * - --allow-read: Read configuration files, Dockerfiles, package.json * - --allow-write: Write configuration files, build artifacts * - --allow-run: Execute system commands (docker, git, npm, ssh) * - --allow-sys: Access system information (OS details) * - --allow-env: Read/write environment variables * * @module */ import { Szci } from './ts/szci.classes.szci.ts'; /** * Main entry point for the SZCI application * Parses command-line arguments and executes the requested command */ async function main(): Promise { // Create Szci instance const szciInstance = new Szci(); // Start the CLI // Deno.args is already 0-indexed (unlike Node's process.argv which starts at index 2) // The smartcli library may expect process.argv format, so we might need to prepend placeholders await szciInstance.start(); } // Execute main and handle errors if (import.meta.main) { try { await main(); } catch (error) { console.error(`Error: ${error instanceof Error ? error.message : String(error)}`); Deno.exit(1); } } // Export for programmatic use export { Szci } from './ts/szci.classes.szci.ts'; export { Dockerfile } from './ts/manager.docker/mod.classes.dockerfile.ts';