mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-08 16:49:58 +00:00
99 lines
2.8 KiB
JavaScript
99 lines
2.8 KiB
JavaScript
// @ts-check
|
|
|
|
import path from "path";
|
|
import url from "url";
|
|
|
|
import config from "./config.js";
|
|
|
|
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
const rootPath = path.join(__dirname, "../../../");
|
|
|
|
export const DIST_PATH = path.join(rootPath, "dist/app");
|
|
export const LICENSE_PATH = path.join(rootPath, "LICENSE");
|
|
|
|
export const REGISTRY_KEY = config.applicationName;
|
|
|
|
export const pkgPlatformMap = {
|
|
win32: "win",
|
|
darwin: "macos",
|
|
linux: "linux"
|
|
};
|
|
|
|
export const MANIFEST_NAME = `${config.applicationName}.json`;
|
|
|
|
/**
|
|
* @param {string} platform
|
|
* @returns {string}
|
|
*/
|
|
export function getExecutableName(platform) {
|
|
switch (platform) {
|
|
case "win32":
|
|
return `${config.applicationExecutableName}.exe`;
|
|
case "darwin":
|
|
case "linux":
|
|
return config.applicationExecutableName;
|
|
}
|
|
|
|
throw new Error("No executable name for specified platform!");
|
|
}
|
|
|
|
/**
|
|
* @param {string} platform
|
|
* @param {string} arch
|
|
* @returns {string}
|
|
*/
|
|
export function getExecutableDirectory(platform, arch) {
|
|
const EXECUTABLE_DIR_WIN32_X64 = `C:\\Program Files\\${config.applicationDirectoryName}\\`;
|
|
const EXECUTABLE_DIR_WIN32_X86 = `C:\\Program Files (x86)\\${config.applicationDirectoryName}\\`;
|
|
const EXECUTABLE_DIR_DARWIN = `/Library/Application Support/${config.applicationDirectoryName}/`;
|
|
const EXECUTABLE_DIR_LINUX = `/opt/${config.applicationDirectoryName}/`;
|
|
|
|
switch (platform) {
|
|
case "win32":
|
|
switch (arch) {
|
|
case "x86":
|
|
return EXECUTABLE_DIR_WIN32_X86;
|
|
case "x64":
|
|
return EXECUTABLE_DIR_WIN32_X64;
|
|
}
|
|
break;
|
|
case "darwin":
|
|
return EXECUTABLE_DIR_DARWIN;
|
|
case "linux":
|
|
return EXECUTABLE_DIR_LINUX;
|
|
}
|
|
|
|
throw new Error("No executable directory for specified platform!");
|
|
}
|
|
|
|
/**
|
|
* @param {string} platform
|
|
* @param {string} arch
|
|
* @param {string} [linuxPackageType]
|
|
* @returns {string}
|
|
*/
|
|
export function getManifestDirectory(platform, arch, linuxPackageType) {
|
|
const MANIFEST_DIR_DARWIN =
|
|
"/Library/Application Support/Mozilla/NativeMessagingHosts/";
|
|
const MANIFEST_DIR_LINUX_DEB = "/usr/lib/mozilla/native-messaging-hosts/";
|
|
const MANIFEST_DIR_LINUX_RPM = "/usr/lib64/mozilla/native-messaging-hosts/";
|
|
|
|
switch (platform) {
|
|
case "win32":
|
|
return getExecutableDirectory(platform, arch);
|
|
case "darwin":
|
|
return MANIFEST_DIR_DARWIN;
|
|
case "linux":
|
|
switch (linuxPackageType) {
|
|
case "deb":
|
|
return MANIFEST_DIR_LINUX_DEB;
|
|
case "rpm":
|
|
return MANIFEST_DIR_LINUX_RPM;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
throw new Error("No manifest directory for specified platform!");
|
|
}
|