aaron
057377207a
Some checks failed
release / begin-notification (push) Has been cancelled
release / build-linux (push) Has been cancelled
release / build-msi-installer (push) Has been cancelled
release / build-mac-installer (push) Has been cancelled
release / upload-to-s3 (push) Has been cancelled
release / github-release (push) Has been cancelled
release / end-notification (push) Has been cancelled
41 lines
1.6 KiB
JavaScript
41 lines
1.6 KiB
JavaScript
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// For linux dev, drop a desktop shortcut so deep linking works correctly
|
|
if (process.platform === 'linux') {
|
|
const xdgDir = path.resolve(process.env.HOME, '.local/share/applications');
|
|
if (fs.existsSync(xdgDir) && !fs.existsSync(path.resolve(xdgDir, 'mattermost-desktop-dev.desktop'))) {
|
|
fs.writeFileSync(
|
|
path.resolve(xdgDir, 'mattermost-desktop-dev.desktop'),
|
|
`[Desktop Entry]
|
|
Name=Mattermost.Dev
|
|
Exec=${path.resolve(process.cwd(), 'node_modules/electron/dist/electron')} ${path.resolve(process.cwd(), 'dist')} %U
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=mattermost-desktop
|
|
StartupWMClass=Mattermost
|
|
Comment=Mattermost
|
|
MimeType=x-scheme-handler/mattermost-dev;
|
|
Categories=contrib/net;
|
|
`,
|
|
);
|
|
|
|
const defaultsListPath = path.resolve(xdgDir, 'defaults.list');
|
|
if (!fs.existsSync(defaultsListPath)) {
|
|
fs.writeFileSync(defaultsListPath, '[Default Applications]\n');
|
|
}
|
|
fs.appendFileSync(defaultsListPath, 'x-scheme-handler/mattermost-dev=mattermost-desktop-dev.desktop\n');
|
|
|
|
const mimeCachePath = path.resolve(xdgDir, 'mimeinfo.cache');
|
|
if (!fs.existsSync(mimeCachePath)) {
|
|
fs.writeFileSync(mimeCachePath, '[MIME Cache]\n');
|
|
}
|
|
fs.appendFileSync(mimeCachePath, 'x-scheme-handler/mattermost-dev=mattermost-desktop-dev.desktop\n');
|
|
|
|
console.log('NOTE: You may need to log in and out of your session to ensure that deep linking works correctly.');
|
|
}
|
|
}
|