Rename directory: app -> bridge

This commit is contained in:
hensm
2023-02-26 18:04:22 +00:00
parent 3864ffdbf5
commit 33bcbc0dca
38 changed files with 29 additions and 26 deletions

35
bridge/bin/lib/config.js Normal file
View File

@@ -0,0 +1,35 @@
// @ts-check
import fs from "fs";
import path from "path";
import url from "url";
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
/**
* @typedef {object} Config
* @prop {string} author
* @prop {string} homepageUrl
* @prop {string} applicationName
* @prop {string} applicationVersion
* @prop {string} applicationDirectoryName
* @prop {string} applicationExecutableName
* @prop {string} extensionId
*/
/** @type {Config} */
//
let config;
try {
config = JSON.parse(
fs.readFileSync(path.join(__dirname, "../../config.json"), {
encoding: "utf-8"
})
);
} catch (err) {
console.error("Error: Failed to load build config!", err);
process.exit(1);
}
export default config;

98
bridge/bin/lib/paths.js Normal file
View File

@@ -0,0 +1,98 @@
// @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/bridge");
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!");
}