session-desktop/build/afterPackHook.js

47 lines
1.5 KiB
JavaScript

const path = require('path');
const fs = require('fs');
const util = require('util');
const renameAsync = util.promisify(fs.rename);
const unlinkAsync = util.promisify(fs.unlink);
module.exports = async function(context) {
// Replace the app launcher on linux only.
if (process.platform !== 'linux') {
return;
}
const isAppImage =
context.targets.name === 'appImage' || context.targets.some(e => e.name === 'appImage');
console.log(
'targets',
context.targets.map(target => target.name)
);
console.log('AppImage', isAppImage);
if (!isAppImage) {
console.log('afterPack hook not triggered as this is not an appImage build');
return;
}
// eslint-disable-next-line no-console
// console.log('afterPack hook triggered', context);
const executableName = context.packager.executableName;
const sourceExecutable = path.join(context.appOutDir, executableName);
const targetExecutable = path.join(context.appOutDir, `${executableName}-bin`);
const launcherScript = path.join(context.appOutDir, 'resources', 'launcher-script.sh');
const chromeSandbox = path.join(context.appOutDir, 'chrome-sandbox');
return Promise.all([
// rename session-desktop to session-desktop-bin
renameAsync(sourceExecutable, targetExecutable),
// rename launcher script to session-desktop
renameAsync(launcherScript, sourceExecutable),
// remove the chrome-sandbox file since we explicitly disable it
unlinkAsync(chromeSandbox),
]);
};