in electron-installer/rpm.js [88:153]
function constructProcessor(config, buildTarget, buildInfos, packageJson) {
if (process.platform !== "linux") {
log.warning(ModuleName, "Target", "Skipping: Publishing RPM must be on linux.");
return new PassThrough({ objectMode: true });
}
if (buildTarget.platform !== "linux") {
log.error(ModuleName, "Target", "Skipping: BuildTarget.platform must be linux.");
return new PassThrough({ objectMode: true });
}
if (!dd.isModuleInstalled(InstallerDepName)) {
log.info(ModuleName, "Dependency", `Installing dependency "${InstallerDepName}" ...`);
dd.installDynamicDependency(
InstallerDepName,
{
depTypes: ["dev"]
});
}
return new Transform({
objectMode: true,
/** @param {import("vinyl")} chunk */
transform(chunk, encoding, callback) {
if (!chunk.isDirectory()) {
this.push(chunk);
callback();
return;
}
const options = {
src: chunk.path,
dest: tmp.dirSync({ dir: buildInfos.paths.intermediateDir, unsafeCleanup: true }).name,
arch: toInstallerArch(buildTarget.arch),
name: buildInfos.executableName,
productName: buildInfos.productName,
genericName: buildInfos.productName,
version: buildInfos.buildNumber,
revision: "0",
section: config.section,
bin: buildInfos.executableName,
icon: generateIconOptions(config.icons),
categories: config.categories
};
const installer = require(InstallerDepName);
installer(options,
/** @param {*} err */
(err) => {
if (err) {
callback(err);
return;
}
glob.sync(path.join(options.dest, "**/*"), { dot: true, onlyFiles: false })
.forEach(
/** @param {string} fileName */
(fileName) => this.push(vinyl(fileName, options.dest)));
callback();
});
}
});
};