aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-02 19:55:15 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-02 19:55:15 +0200
commitc27fd1ad630efc8149dedc4501fcfe16dd8da425 (patch)
tree99349e251747f529e842786e31c0c0a44381ed6e
parent8b1d2f0093748cc7f31e0f360f72d28598e89d45 (diff)
downloadisda-c27fd1ad630efc8149dedc4501fcfe16dd8da425.tar
isda-c27fd1ad630efc8149dedc4501fcfe16dd8da425.tar.bz2
isda-c27fd1ad630efc8149dedc4501fcfe16dd8da425.tar.zst
command line tool for enqueuing tasks
-rw-r--r--scripts/cli.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/cli.ts b/scripts/cli.ts
new file mode 100644
index 0000000..be7a81b
--- /dev/null
+++ b/scripts/cli.ts
@@ -0,0 +1,34 @@
+
+const ws = new WebSocket(Deno.args[0])
+
+
+function do_stuff() {
+
+ switch (Deno.args[1]) {
+ case "enqueue":
+ if (Deno.args.length >= 4)
+ ws.send(JSON.stringify({ t: "metadata", key: Deno.args[2], data: JSON.parse(Deno.args[3]) }))
+ ws.send(JSON.stringify({ t: "enqueue", key: Deno.args[2], ignore_complete: true }))
+ break;
+ case "save":
+ break;
+ default:
+ break
+ }
+ ws.send(JSON.stringify({ t: "save" }))
+}
+
+ws.onerror = () => console.error("ws error")
+ws.onclose = () => console.error("ws closed")
+ws.onopen = () => {
+ console.log("ws open");
+ ws.send(JSON.stringify({ t: "register", name: "cli", task_kinds: [] }))
+ do_stuff()
+ setTimeout(() => Deno.exit(0), 200) // not sure if websockets are flushed since they're non-blocking
+}
+ws.onmessage = ev => {
+ if (typeof ev.data != "string") return
+ const p = JSON.parse(ev.data)
+ if (p.t == "config") return
+ if (p.t == "error") console.error(`error: ${p.message}`);
+}