mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-08 08:39:59 +00:00
73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
const fs = require("fs-extra");
|
|
const os = require("os");
|
|
const path = require("path");
|
|
const minimist = require("minimist");
|
|
|
|
const paths = require("./lib/paths");
|
|
|
|
|
|
const argv = minimist(process.argv.slice(2), {
|
|
boolean: [ "remove" ]
|
|
, default: {
|
|
remove: false
|
|
}
|
|
});
|
|
|
|
|
|
const CURRENT_MANIFEST_PATH = path.join(paths.DIST_PATH, paths.MANIFEST_NAME);
|
|
|
|
|
|
if (!fs.existsSync(CURRENT_MANIFEST_PATH) && !argv.remove) {
|
|
console.error("No manifest in dist/app/ to install.");
|
|
process.exit(1);
|
|
}
|
|
|
|
|
|
const platform = os.platform();
|
|
const arch = os.arch();
|
|
|
|
switch (platform) {
|
|
case "darwin":
|
|
case "linux": {
|
|
// Manifest location within home directory
|
|
const destination = path.join(os.homedir(), platform === "linux"
|
|
? ".mozilla/native-messaging-hosts/"
|
|
: paths.getManifestPath(platform, arch));
|
|
|
|
if (argv.remove) {
|
|
fs.remove(path.join(destination, paths.MANIFEST_NAME));
|
|
break;
|
|
}
|
|
|
|
// Install manifest
|
|
fs.ensureDirSync(destination);
|
|
fs.copyFileSync(CURRENT_MANIFEST_PATH
|
|
, path.join(destination, paths.MANIFEST_NAME));
|
|
|
|
break;
|
|
};
|
|
|
|
case "win32": {
|
|
const { Registry } = require("rage-edit");
|
|
const REGISTRY_PATH = `HKCU\\SOFTWARE\\Mozilla\\NativeMessagingHosts\\${paths.REGISTRY_KEY}`;
|
|
|
|
if (argv.remove) {
|
|
Registry.delete(REGISTRY_PATH);
|
|
break;
|
|
}
|
|
|
|
Registry.set(
|
|
REGISTRY_PATH
|
|
, ""
|
|
, CURRENT_MANIFEST_PATH
|
|
, "REG_SZ");
|
|
|
|
break;
|
|
};
|
|
|
|
default: {
|
|
console.error("Sorry, this installer does not yet support your OS");
|
|
process.exit(1);
|
|
}
|
|
}
|