@electron-forge/maker-rpm
Version:
Rpm maker for Electron Forge
50 lines • 3.47 kB
JavaScript
import path from 'node:path';
import { MakerBase } from '@electron-forge/maker-base';
function renameRpm(dest, _src) {
return path.join(dest, '<%= name %>-<%= version %>-<%= revision %>.<%= arch === "aarch64" ? "arm64" : arch %>.rpm');
}
/**
* Converts the Node.js architecture value of the processor architecture
* into a string accepted by `electron-installer-redhat`.
*
* @param nodeArch - Node.js architecture string
* @returns - electron-installer-redhat architecture string
*/
export function rpmArch(nodeArch) {
switch (nodeArch) {
case 'ia32':
return 'i386';
case 'x64':
return 'x86_64';
case 'arm64':
return 'aarch64';
case 'armv7l':
return 'armv7hl';
default:
throw new Error(`Unsupported architecture ${nodeArch}`);
}
}
export default class MakerRpm extends MakerBase {
name = 'rpm';
defaultPlatforms = ['linux'];
requiredExternalBinaries = ['rpmbuild'];
isSupportedOnCurrentPlatform() {
return this.isInstalled('electron-installer-redhat');
}
async make({ dir, makeDir, targetArch }) {
// @ts-expect-error - this package has no types
const { default: installer } = await import('electron-installer-redhat');
const outDir = path.resolve(makeDir, 'rpm', targetArch);
await this.ensureDirectory(outDir);
const { packagePaths } = await installer({
...this.config,
arch: rpmArch(targetArch),
src: dir,
dest: outDir,
rename: renameRpm,
});
return packagePaths;
}
}
export { MakerRpm };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFrZXJScG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWFrZXJScG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFLckUsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLElBQVk7SUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLElBQUksRUFDSiwyRkFBMkYsQ0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLFFBQW1CO0lBQ3pDLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxLQUFLO1lBQ1IsT0FBTyxRQUFRLENBQUM7UUFDbEIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxTQUFTLENBQUM7UUFDbkI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFTLFNBQVEsU0FBeUI7SUFDN0QsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUViLGdCQUFnQixHQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLHdCQUF3QixHQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbEQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQWdCO1FBQ25ELCtDQUErQztRQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFekUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUM7WUFDdkMsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3pCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFrQixDQUFDIn0=