init: inital commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/home/silicoflare/.bun/bin/bun
|
||||
|
||||
import { spawn } from "bun";
|
||||
import { workDomains, directWorkURLs } from "./data";
|
||||
|
||||
const url = process.argv[2] ?? "";
|
||||
|
||||
const WORK_BROWSER = "firefox";
|
||||
const PERSONAL_BROWSER = "/home/silicoflare/Programs/waterfox/waterfox";
|
||||
|
||||
if (!workDomains || !directWorkURLs) {
|
||||
console.error("Data is not loaded");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
function getBrowser(url: string) {
|
||||
const parsed = new URL(url);
|
||||
|
||||
// query param based
|
||||
const queryParams = parsed.searchParams;
|
||||
if (queryParams.has("work")) {
|
||||
return WORK_BROWSER;
|
||||
}
|
||||
|
||||
// domain based
|
||||
const domain = parsed.hostname;
|
||||
if (workDomains.some(workDomain => domain.includes(workDomain))) {
|
||||
return WORK_BROWSER;
|
||||
}
|
||||
|
||||
// direct URL based
|
||||
if (directWorkURLs.some(directWorkURL => url.includes(directWorkURL))) {
|
||||
return WORK_BROWSER;
|
||||
}
|
||||
|
||||
return PERSONAL_BROWSER;
|
||||
}
|
||||
|
||||
if (!url) {
|
||||
// open personal browser if no URL is provided
|
||||
spawn([PERSONAL_BROWSER]);
|
||||
}
|
||||
|
||||
const browser = getBrowser(url);
|
||||
spawn([browser, url]);
|
||||
Reference in New Issue
Block a user