mirror of
https://github.com/anomalyco/opencode.git
synced 2026-04-25 07:15:19 +00:00
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { AppRuntime } from "@/effect/app-runtime"
|
|
import { Snapshot } from "../../../snapshot"
|
|
import { bootstrap } from "../../bootstrap"
|
|
import { cmd } from "../cmd"
|
|
|
|
export const SnapshotCommand = cmd({
|
|
command: "snapshot",
|
|
describe: "snapshot debugging utilities",
|
|
builder: (yargs) => yargs.command(TrackCommand).command(PatchCommand).command(DiffCommand).demandCommand(),
|
|
async handler() {},
|
|
})
|
|
|
|
const TrackCommand = cmd({
|
|
command: "track",
|
|
describe: "track current snapshot state",
|
|
async handler() {
|
|
await bootstrap(process.cwd(), async () => {
|
|
console.log(await AppRuntime.runPromise(Snapshot.Service.use((svc) => svc.track())))
|
|
})
|
|
},
|
|
})
|
|
|
|
const PatchCommand = cmd({
|
|
command: "patch <hash>",
|
|
describe: "show patch for a snapshot hash",
|
|
builder: (yargs) =>
|
|
yargs.positional("hash", {
|
|
type: "string",
|
|
description: "hash",
|
|
demandOption: true,
|
|
}),
|
|
async handler(args) {
|
|
await bootstrap(process.cwd(), async () => {
|
|
console.log(await AppRuntime.runPromise(Snapshot.Service.use((svc) => svc.patch(args.hash))))
|
|
})
|
|
},
|
|
})
|
|
|
|
const DiffCommand = cmd({
|
|
command: "diff <hash>",
|
|
describe: "show diff for a snapshot hash",
|
|
builder: (yargs) =>
|
|
yargs.positional("hash", {
|
|
type: "string",
|
|
description: "hash",
|
|
demandOption: true,
|
|
}),
|
|
async handler(args) {
|
|
await bootstrap(process.cwd(), async () => {
|
|
console.log(await AppRuntime.runPromise(Snapshot.Service.use((svc) => svc.diff(args.hash))))
|
|
})
|
|
},
|
|
})
|