aboutsummaryrefslogtreecommitdiff
path: root/home/dot_local/share/bin/executable_dox-open
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2026-08-02 14:48:29 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2026-08-02 14:48:29 +0200
commite43eb1177872f52e949fb5f0f93396ed94b0d093 (patch)
tree78b73af6a989fa2996d71b112e161b70d35081ef /home/dot_local/share/bin/executable_dox-open
parent2f14a896e4b897bd747c24d7ad8e9e7bb3237d03 (diff)
move to chezmoi
Diffstat (limited to 'home/dot_local/share/bin/executable_dox-open')
-rw-r--r--home/dot_local/share/bin/executable_dox-open31
1 files changed, 31 insertions, 0 deletions
diff --git a/home/dot_local/share/bin/executable_dox-open b/home/dot_local/share/bin/executable_dox-open
new file mode 100644
index 0000000..493c435
--- /dev/null
+++ b/home/dot_local/share/bin/executable_dox-open
@@ -0,0 +1,31 @@
+#!/bin/node
+
+import { glob, readFile } from 'node:fs/promises';
+import { spawn } from 'node:child_process';
+import { argv, chdir, cwd } from 'node:process';
+import { join } from 'node:path';
+
+argv.shift();
+argv.shift();
+chdir("search");
+
+var symbols = {};
+for await (const chunk of glob('all_*.js')) {
+ const contents = await readFile(chunk);
+ const searchData = eval(`${contents}; searchData`);
+ const here = cwd();
+
+ for (const [ _id, [ symbol, ...entry ] ] of searchData) {
+ symbols[symbol] = entry.map(e => `file://${join(here, e[0])}`);
+ }
+}
+
+for (const symbol of argv) {
+ if (!(symbol in symbols)) {
+ console.error(`No doxygen index for symbol \`${symbol}\``);
+ continue;
+ }
+ const urls = symbols[symbol];
+ spawn('xdg-open', [ urls[0], ]);
+}
+