37 lines
1.1 KiB
TypeScript
Executable file
37 lines
1.1 KiB
TypeScript
Executable file
#!/bin/env -S deno run -A
|
|
import { crayon } from "https://deno.land/x/crayon@3.3.3/mod.ts";
|
|
const [filename] = Deno.args;
|
|
|
|
const args = [filename];
|
|
const { stdout } = await new Deno
|
|
.Command("strings", { args, stdout: "piped" })
|
|
.output();
|
|
const strings = new TextDecoder().decode(stdout);
|
|
|
|
let passed = false;
|
|
let rest = strings.split("\n").filter((l) => {
|
|
if (l === "IDATx") passed = true;
|
|
return !passed;
|
|
}).join("\n");
|
|
|
|
function split_once(text: string, sep: string) {
|
|
const [first, ...rest] = text.split(sep);
|
|
return [first, rest.join(sep)];
|
|
}
|
|
|
|
let _, prompt, negative, settings;
|
|
[_, rest] = split_once(rest, "parameters\n");
|
|
[prompt, rest] = split_once(rest, "\nNegative prompt: ");
|
|
[negative, rest] = split_once(rest, "\nSteps: ");
|
|
[settings, _] = split_once(rest, "\nIDATx");
|
|
settings = "Steps: " + settings;
|
|
|
|
const pairs = settings.split(", ").map((p) => split_once(p, ": "));
|
|
|
|
for (const [key, value] of pairs) {
|
|
console.log(`${crayon.yellow.bold((key + ":").padEnd(12))} ${value}`);
|
|
}
|
|
console.log(`${crayon.yellow.bold("prompt:")}
|
|
${prompt}
|
|
${crayon.yellow.bold("negative:")}
|
|
${negative}`);
|