Files
linsa/lax
2024-09-30 15:34:24 +03:00

61 lines
1.2 KiB
Plaintext
Executable File

#!/usr/bin/env osascript -l JavaScript
ObjC.import('stdlib')
function run(argv) {
let args = parse_args(argv);
let url = args.browser(+args.index);
let app = Application.currentApplication();
app.includeStandardAdditions = true;
app.openLocation(`learn-anything://add-link?url=${encodeURIComponent(url)}`)
}
function parse_args(argv) {
let args = [];
let browser = undefined;
for (i of argv) {
if (!i.startsWith("-")) {
args.push(i);
continue;
}
if (i == "-s" || i == "--safari") {
if (browser != undefined) usage();
browser = safari;
} else if (i == "-c" || i == "--chrome") {
if (browser != undefined) usage();
browser = chrome;
} else {
usage();
}
}
if (args.length == 0) {
args = [0];
}
if (args.length > 1) {
usage();
}
if (browser == undefined) {
browser = safari;
}
let index = Number(args[0]);
if (Number.isNaN(index)) {
throw `Invalid window index: ${args[0]}`;
}
return {
browser,
index,
};
}
function usage() {
console.log("Usage: lax [-s|--safari|-c|--chrome] [WINDOW]");
$.exit(1);
}
function safari(index) {
return Application("Safari").windows[index].currentTab.url();
}
function chrome(index) {
return Application("Google Chrome").windows[index].activeTab().url();
}