diff --git a/.runseal/deno.json b/.runseal/deno.json index 2a16131..78ff293 100644 --- a/.runseal/deno.json +++ b/.runseal/deno.json @@ -1,6 +1,6 @@ { "imports": { - "@perish/harness": "jsr:@perish/harness@0.1.0-beta.2" + "@perish/harness": "jsr:@perish/harness@0.1.0" }, "compilerOptions": { "strict": true diff --git a/.runseal/deno.lock b/.runseal/deno.lock index 75929fb..72206b8 100644 --- a/.runseal/deno.lock +++ b/.runseal/deno.lock @@ -1,12 +1,12 @@ { "version": "5", "specifiers": { - "jsr:@perish/harness@0.1.0-beta.2": "0.1.0-beta.2", + "jsr:@perish/harness@0.1.0": "0.1.0", "jsr:@std/cli@1.0.30": "1.0.30" }, "jsr": { - "@perish/harness@0.1.0-beta.2": { - "integrity": "f65dcc9330bbee33136682f3d466ff5bc5976a9df8c64707253b12a70c355c03", + "@perish/harness@0.1.0": { + "integrity": "1d55088d77f7bffa19de6ed3551e748444c93d4bb4426e41b8ddf54cd42fdb29", "dependencies": [ "jsr:@std/cli" ] @@ -17,7 +17,7 @@ }, "workspace": { "dependencies": [ - "jsr:@perish/harness@0.1.0-beta.2" + "jsr:@perish/harness@0.1.0" ] } } diff --git a/.runseal/wrappers/land.ts b/.runseal/wrappers/land.ts index 4eea492..c833195 100644 --- a/.runseal/wrappers/land.ts +++ b/.runseal/wrappers/land.ts @@ -7,6 +7,7 @@ type Options = { base: string; body: string; dry: boolean; + watch: boolean; }; const budget = 240_000; @@ -37,6 +38,10 @@ const sha = await bin("git").text(["rev-parse", "HEAD"]); const url = await pull(options, branch); io.print(url); +if (!options.watch) { + io.print("land: PR is up; guard not awaited (--watch=false)"); + Deno.exit(0); +} await guarded(sha); await bin("gh").run([ "pr", @@ -61,6 +66,8 @@ function usage(): void { io.print("exact pushed head commit are awaited, the PR is squash-merged against"); io.print("that same commit, main is synced, and the topic branch is deleted."); io.print(""); + io.print(" --watch=false stop once the PR exists; skip the guard wait and merge"); + io.print(""); io.print("Options:"); io.print(" --base base branch (default: main)"); io.print(" --body pull request body override"); @@ -70,13 +77,15 @@ function usage(): void { function parse(args: string[]): Options & { help: boolean } { const parsed = cli.parse(args, { string: ["base", "body"], - boolean: ["dry-run", "help", "h"], + boolean: ["dry-run", "watch", "help", "h"], + default: { watch: true }, }); flags(parsed).positionals("land", { allowHelp: true }); return { base: flags(parsed).string("base", "main"), body: flags(parsed).string("body"), dry: flags(parsed).boolean("dry-run"), + watch: parsed.watch === true, help: flags(parsed).help(), }; }