2021-12-13 08:40:18 +00:00
|
|
|
const fs = require('fs');
|
2022-01-29 11:03:08 +00:00
|
|
|
const { join, basename, dirname } = require('path');
|
2021-12-13 08:40:18 +00:00
|
|
|
const { app } = require('electron');
|
|
|
|
|
|
|
|
const buildInfo = require('../utils/buildInfo');
|
|
|
|
|
2022-01-29 11:03:08 +00:00
|
|
|
const desktopPath = join(app.getPath('appData'), 'autostart', app.name + '-' + buildInfo.releaseChannel + '.desktop');
|
2021-12-13 08:40:18 +00:00
|
|
|
|
|
|
|
// Vars for use in desktop file content template
|
2022-04-22 17:35:57 +00:00
|
|
|
const exec = app.getPath('exe');
|
2021-12-13 08:40:18 +00:00
|
|
|
|
|
|
|
// Template for desktop file
|
|
|
|
const desktopContent = `[Desktop Entry]
|
|
|
|
Type=Application
|
2022-04-22 17:35:57 +00:00
|
|
|
Exec=${exec}
|
2021-12-13 08:40:18 +00:00
|
|
|
Hidden=false
|
|
|
|
NoDisplay=false
|
2022-03-25 23:01:06 +00:00
|
|
|
Name=${basename(process.execPath)}
|
2022-05-31 10:35:47 +00:00
|
|
|
Icon=${join(global.systemElectron ? '/usr/share/pixmaps' : dirname(exec), 'discord.png')}
|
2021-12-13 08:40:18 +00:00
|
|
|
Comment=Text and voice chat for gamers.
|
2022-01-28 19:17:06 +00:00
|
|
|
X-GNOME-Autostart-enabled=true`;
|
2021-12-13 08:40:18 +00:00
|
|
|
|
2022-04-22 17:35:57 +00:00
|
|
|
exports.install = (cb) => {
|
2021-12-13 08:40:18 +00:00
|
|
|
try {
|
2022-04-29 07:40:53 +00:00
|
|
|
fs.mkdirSync(dirname(desktopPath), { recursive: true });
|
|
|
|
fs.writeFile(desktopPath, desktopContent, cb);
|
2022-04-22 17:35:57 +00:00
|
|
|
} catch {
|
2022-04-29 07:40:53 +00:00
|
|
|
cb(); // Callback anyway
|
2021-12-13 08:40:18 +00:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-04-22 17:35:57 +00:00
|
|
|
exports.update = (cb) => cb();
|
2021-12-13 18:59:56 +00:00
|
|
|
|
2022-04-22 17:35:57 +00:00
|
|
|
exports.uninstall = (cb) => fs.unlink(desktopPath, cb);
|
2021-12-13 08:40:18 +00:00
|
|
|
|
2022-04-22 17:35:57 +00:00
|
|
|
exports.isInstalled = (cb) => fs.access(desktopPath, fs.constants.F_OK, cb);
|