mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Added desktop shortcuts
This commit is contained in:
parent
bf93b8e90a
commit
086b6736b0
@ -30,3 +30,6 @@ Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
|
||||
Microsoft (R) Windows Script Host Versione 5.812
|
||||
Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
|
||||
|
||||
Microsoft (R) Windows Script Host Versione 5.812
|
||||
Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
|
||||
|
||||
|
||||
@ -85,7 +85,10 @@ class DCSInstance {
|
||||
}
|
||||
|
||||
this.installed = true;
|
||||
const options = { compareContent: true };
|
||||
const options = {
|
||||
compareContent: true,
|
||||
excludeFilter: "databases"
|
||||
};
|
||||
var err1 = true;
|
||||
var err2 = true;
|
||||
var res1;
|
||||
@ -311,7 +314,7 @@ class DCSInstance {
|
||||
|
||||
uninstall() {
|
||||
showConfirmPopup("Are you sure you want to completely remove this Olympus installation?", () =>
|
||||
uninstallInstance(this.folder).then(
|
||||
uninstallInstance(this.folder, this.name).then(
|
||||
() => {
|
||||
location.reload();
|
||||
},
|
||||
|
||||
@ -2,7 +2,30 @@ const sha256 = require('sha256')
|
||||
const createShortcut = require('create-desktop-shortcuts');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { showErrorPopup, showWaitPopup } = require('./popup');
|
||||
const { showWaitPopup } = require('./popup');
|
||||
const homeDir = require('os').homedir();
|
||||
|
||||
async function deleteFile(filePath) {
|
||||
console.log(`Deleting ${filePath}`);
|
||||
var promise = new Promise((res, rej) => {
|
||||
if (fs.existsSync(filePath)) {
|
||||
fs.rm(filePath, (err) => {
|
||||
if (err) {
|
||||
console.error(`Error removing ${filePath}: ${err}`)
|
||||
rej(err);
|
||||
}
|
||||
else {
|
||||
console.log(`Removed ${filePath}`)
|
||||
res(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
res(true);
|
||||
}
|
||||
})
|
||||
return promise;
|
||||
}
|
||||
|
||||
async function fixInstances(instances) {
|
||||
var promise = new Promise((res, rej) => {
|
||||
@ -23,13 +46,14 @@ async function fixInstances(instances) {
|
||||
return promise;
|
||||
}
|
||||
|
||||
async function uninstallInstance(folder) {
|
||||
async function uninstallInstance(folder, name) {
|
||||
console.log(`Uninstalling Olympus from ${folder}`)
|
||||
showWaitPopup("Please wait while the Olympus installation is being uninstalled.")
|
||||
var promise = new Promise((res, rej) => {
|
||||
deleteMod(folder)
|
||||
.then(() => deleteHooks(folder), (err) => { return Promise.reject(err); })
|
||||
.then(() => deleteJSON(folder), (err) => { return Promise.reject(err); })
|
||||
.then(() => deleteShortCuts(folder, name), (err) => { return Promise.reject(err); })
|
||||
.then(() => res(true), (err) => { rej(err) });
|
||||
})
|
||||
return promise;
|
||||
@ -143,7 +167,27 @@ async function installShortCuts(folder, name) {
|
||||
}
|
||||
});
|
||||
|
||||
if (res1 && res2) {
|
||||
var res3 = createShortcut({
|
||||
windows: {
|
||||
filePath: path.resolve(__dirname, '..', '..', 'client', 'client.vbs'),
|
||||
name: `DCS Olympus Client (${name})`,
|
||||
arguments: `"${path.join(folder, "Config", "olympus.json")}"`,
|
||||
icon: path.resolve(__dirname, '..', '..', 'img', 'olympus.ico'),
|
||||
workingDirectory: path.resolve(__dirname, '..', '..', 'client')
|
||||
}
|
||||
});
|
||||
|
||||
var res4 = createShortcut({
|
||||
windows: {
|
||||
filePath: path.resolve(__dirname, '..', '..', 'client', 'server.vbs'),
|
||||
name: `DCS Olympus Server (${name})`,
|
||||
arguments: `"${path.join(folder, "Config", "olympus.json")}"`,
|
||||
icon: path.resolve(__dirname, '..', '..', 'img', 'olympus_server.ico'),
|
||||
workingDirectory: path.resolve(__dirname, '..', '..', 'client')
|
||||
}
|
||||
});
|
||||
|
||||
if (res1 && res2 && res3 && res4) {
|
||||
res(true);
|
||||
} else {
|
||||
rej("An error occurred while creating the shortcuts")
|
||||
@ -154,23 +198,7 @@ async function installShortCuts(folder, name) {
|
||||
|
||||
async function deleteHooks(folder) {
|
||||
console.log(`Deleting hooks from ${folder}`);
|
||||
var promise = new Promise((res, rej) => {
|
||||
if (fs.existsSync(path.join(folder, "Scripts", "Hooks", "OlympusHook.lua"))) {
|
||||
fs.rm(path.join(folder, "Scripts", "Hooks", "OlympusHook.lua"), (err) => {
|
||||
if (err) {
|
||||
console.log(`Error removing hooks from ${folder}: ${err}`)
|
||||
rej(err);
|
||||
}
|
||||
else {
|
||||
console.log(`Hooks succesfully removed from ${folder}`)
|
||||
res(true);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
res(true);
|
||||
}
|
||||
})
|
||||
return promise;
|
||||
return deleteFile(path.join(folder, "Scripts", "Hooks", "OlympusHook.lua"));
|
||||
}
|
||||
|
||||
async function deleteMod(folder) {
|
||||
@ -196,28 +224,19 @@ async function deleteMod(folder) {
|
||||
|
||||
async function deleteJSON(folder) {
|
||||
console.log(`Deleting JSON from ${folder}`);
|
||||
var promise = new Promise((res, rej) => {
|
||||
if (fs.existsSync(path.join(folder, "Config", "olympus.json"))) {
|
||||
fs.rm(path.join(folder, "Config", "olympus.json"), (err) => {
|
||||
if (err) {
|
||||
console.log(`Error removing JSON from ${folder}: ${err}`)
|
||||
rej(err);
|
||||
}
|
||||
else {
|
||||
console.log(`JSON succesfully removed from ${folder}`)
|
||||
res(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
res(true);
|
||||
}
|
||||
})
|
||||
return promise;
|
||||
return deleteFile(path.join(folder, "Config", "olympus.json"));
|
||||
}
|
||||
|
||||
async function deleteShortCuts() {
|
||||
|
||||
async function deleteShortCuts(folder, name) {
|
||||
console.log(`Deleting ShortCuts from ${folder}`);
|
||||
var promise = new Promise((res, rej) => {
|
||||
deleteFile(path.join(folder, `DCS Olympus Server (${name}).lnk`))
|
||||
.then(deleteFile(path.join(folder, `DCS Olympus Client (${name}).lnk`)), (err) => { return Promise.reject(err); })
|
||||
.then(deleteFile(path.join(homeDir, "Desktop", `DCS Olympus Server (${name}).lnk`)), (err) => { return Promise.reject(err); })
|
||||
.then(deleteFile(path.join(homeDir, "Desktop", `DCS Olympus Client (${name}).lnk`)), (err) => { return Promise.reject(err); })
|
||||
.then(() => {res(true)}, (err) => { rej(err) })
|
||||
});
|
||||
return promise;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
@ -230,5 +249,6 @@ module.exports = {
|
||||
deleteHooks: deleteHooks,
|
||||
deleteJSON: deleteJSON,
|
||||
deleteMod: deleteMod,
|
||||
deleteShortCuts: deleteShortCuts,
|
||||
uninstallInstance: uninstallInstance
|
||||
}
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"create-desktop-shortcuts": "^1.10.1",
|
||||
"create-windowless-app": "^11.0.0",
|
||||
"dir-compare": "^4.2.0",
|
||||
"ejs": "^3.1.9",
|
||||
"electron": "^28.0.0",
|
||||
|
||||
@ -74,6 +74,10 @@ body {
|
||||
background-image: url("../icons/xmark-solid.svg");
|
||||
}
|
||||
|
||||
.close:hover {
|
||||
background-color: darkred;
|
||||
}
|
||||
|
||||
.title-bar-button {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user