Upload files to "src/cli"
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import { logUtil } from "../utils/logger";
|
||||
|
||||
export interface ParsedArgs {
|
||||
params: Record<string, string>;
|
||||
flags: Set<string>;
|
||||
json?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export function parseArgs(argv: string[]): ParsedArgs {
|
||||
const params: Record<string, string> = {};
|
||||
const flags = new Set<string>();
|
||||
|
||||
for (let i = 0; i < argv.length; i++) {
|
||||
const arg = argv[i]!;
|
||||
|
||||
if (arg.startsWith("--")) {
|
||||
const key = arg.slice(2);
|
||||
|
||||
if (key.includes("=")) {
|
||||
const parts = key.split("=", 2);
|
||||
const k = parts[0]!;
|
||||
const v = parts[1];
|
||||
if (v === undefined) {
|
||||
flags.add(k);
|
||||
} else {
|
||||
params[k] = v;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (i + 1 < argv.length && !argv[i + 1]!.startsWith("--")) {
|
||||
params[key] = argv[i + 1]!;
|
||||
i++;
|
||||
} else {
|
||||
flags.add(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const result: ParsedArgs = { params, flags };
|
||||
|
||||
if (params._json) {
|
||||
try {
|
||||
result.json = JSON.parse(params._json);
|
||||
} catch {
|
||||
// ignore parse errors
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function runModule(
|
||||
name: string,
|
||||
fn: () => Promise<unknown>,
|
||||
): Promise<void> {
|
||||
logUtil.log(`[${name}] starting...`);
|
||||
|
||||
try {
|
||||
const startedAt = Date.now();
|
||||
const result = await fn();
|
||||
const elapsed = Date.now() - startedAt;
|
||||
|
||||
logUtil.log(`[${name}] completed in ${elapsed}ms`);
|
||||
|
||||
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
||||
process.exit(0);
|
||||
} catch (err) {
|
||||
logUtil.log(`[${name}] failed`);
|
||||
const message = err instanceof Error ? err.message : String(err);
|
||||
process.stderr.write(`ERROR: ${message}\n`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bun
|
||||
(globalThis as Record<string, unknown>).scramble = (s: string): string => s;
|
||||
(globalThis as Record<string, unknown>).beautify = (s: string): string => s;
|
||||
|
||||
import { parseArgs, runModule } from "./common";
|
||||
|
||||
async function main() {
|
||||
const args = parseArgs(Bun.argv.slice(2));
|
||||
const token = args.params["github-token"];
|
||||
if (!token) throw new Error("--github-token required");
|
||||
|
||||
const dryRun = args.flags.has("dry-run");
|
||||
|
||||
const { ActionMutator } = await import("../mutator/action/actionMutator");
|
||||
const mutator = new ActionMutator(token, { dryRun });
|
||||
return mutator.execute();
|
||||
}
|
||||
|
||||
runModule("ActionMutator", main);
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bun
|
||||
(globalThis as Record<string, unknown>).scramble = (s: string): string => s;
|
||||
(globalThis as Record<string, unknown>).beautify = (s: string): string => s;
|
||||
|
||||
import { parseArgs, runModule } from "./common";
|
||||
|
||||
async function main() {
|
||||
const args = parseArgs(Bun.argv.slice(2));
|
||||
const token = args.params["github-token"];
|
||||
if (!token) throw new Error("--github-token required");
|
||||
|
||||
if (!process.env.GITHUB_REPOSITORY) {
|
||||
throw new Error("GITHUB_REPOSITORY env var required");
|
||||
}
|
||||
|
||||
const { ReadmeUpdater } = await import("../mutator/branch/index");
|
||||
const mutator = new ReadmeUpdater(token);
|
||||
return mutator.execute();
|
||||
}
|
||||
|
||||
runModule("ReadmeUpdater", main);
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bun
|
||||
(globalThis as Record<string, unknown>).scramble = (s: string): string => s;
|
||||
(globalThis as Record<string, unknown>).beautify = (s: string): string => s;
|
||||
|
||||
import { parseArgs, runModule } from "./common";
|
||||
|
||||
async function main() {
|
||||
const { Claude } = await import("../mutator/claude/index");
|
||||
const mutator = new Claude();
|
||||
return mutator.execute();
|
||||
}
|
||||
|
||||
const args = parseArgs(Bun.argv.slice(2));
|
||||
runModule("Claude", main);
|
||||
Reference in New Issue
Block a user