mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-11 20:00:23 +01:00
61 lines
1.2 KiB
Plaintext
Executable File
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();
|
|
}
|