4
0
mirror of https://github.com/AltarikMC/Launcher synced 2024-11-21 06:09:51 +01:00

Add linux support to maker and updater

This commit is contained in:
Quentin Legot 2022-10-11 16:39:25 +02:00
parent 2cb8fd1e5b
commit abb924e844
5 changed files with 144 additions and 19 deletions

View File

@ -19,6 +19,10 @@ module.exports = {
setupIcon: path.resolve(__dirname, 'icon.ico'), setupIcon: path.resolve(__dirname, 'icon.ico'),
setupExe: `${pkg.name}-${pkg.version}-win32-x64.exe` setupExe: `${pkg.name}-${pkg.version}-win32-x64.exe`
} }
},
{
name: '@electron-forge/maker-zip',
platforms: ['linux']
} }
], ],
publishers: [ publishers: [

View File

@ -30,6 +30,7 @@
"devDependencies": { "devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.65", "@electron-forge/cli": "^6.0.0-beta.65",
"@electron-forge/maker-squirrel": "^6.0.0-beta.65", "@electron-forge/maker-squirrel": "^6.0.0-beta.65",
"@electron-forge/maker-zip": "^6.0.0-beta.67",
"@electron-forge/publisher-github": "^6.0.0-beta.65", "@electron-forge/publisher-github": "^6.0.0-beta.65",
"electron": "^20.1.0" "electron": "^20.1.0"
}, },

View File

@ -20,4 +20,8 @@ app.mount("#vue");
ipcRenderer.on("update-available", (event, arg) => { ipcRenderer.on("update-available", (event, arg) => {
app.fullscreenText = "Mise à jour disponible, téléchargement..." app.fullscreenText = "Mise à jour disponible, téléchargement..."
}); });
ipcRenderer.on("please-download-update", (event, args) => {
app.fullscreenText = `Veuillez télécharger la mise à jour en cliquant sur le lien suivant: <a href="${args.url}">${args.url}</a>`
})

View File

@ -1,4 +1,5 @@
const isDev = require('electron-is-dev') const isDev = require('electron-is-dev')
const fetch = require('node-fetch').default
const pkg = require('../../package.json') const pkg = require('../../package.json')
const server = 'https://update.electronjs.org' const server = 'https://update.electronjs.org'
@ -23,7 +24,6 @@ class Updater {
return return
} }
this.logger.info(`production version ${this.app.getVersion()}`) this.logger.info(`production version ${this.app.getVersion()}`)
// TODO : replace dialog by automatic restart // TODO : replace dialog by automatic restart
this.autoUpdater.on('update-downloaded', (_event, releaseNotes, releaseName) => { this.autoUpdater.on('update-downloaded', (_event, releaseNotes, releaseName) => {
this.logger.info(`update downloaded ${releaseName}`) this.logger.info(`update downloaded ${releaseName}`)
@ -40,23 +40,48 @@ class Updater {
} }
this.logger.info("Checking for update...") this.logger.info("Checking for update...")
const feed = `${server}/${pkg.repository}/${process.platform}-${process.arch}/${this.app.getVersion()}` const feed = `${server}/${pkg.repository}/${process.platform}-${process.arch}/${this.app.getVersion()}`
this.autoUpdater.setFeedURL(feed) if(process.platform != 'linux') {
this.autoUpdater.checkForUpdates() this.autoUpdater.setFeedURL(feed)
this.autoUpdater.on('error', message => { this.autoUpdater.checkForUpdates()
this.logger.error('There was a problem updating the application') this.autoUpdater.on('error', message => {
this.logger.error(message) this.displayError(win, showNotification, message)
win.loadFile('src/client/login.html').then(() => {
showNotification("Une erreur est survenue lors de la vérification de la mise à jour", "Veuillez vérifier votre connexion internet et réessayer", "error")
}) })
})
this.autoUpdater.on('update-available', () => {
this.autoUpdater.on('update-available', () => { this.logger.info("update available, downloading...")
this.logger.info("update available, downloading...") win.webContents.send("update-available")
win.webContents.send("update-available") })
}) this.autoUpdater.on("update-not-available", () => {
this.autoUpdater.on("update-not-available", () => { this.logger.info("update not available")
this.logger.info("update not available") win.loadFile('src/client/login.html')
win.loadFile('src/client/login.html') })
} else {
fetch(feed).then(response => {
if(response.status === 200) {
response.json().then(json => {
win.webContents.send("please-download-update", { url: json.url} )
})
} else {
if(response.status === 204) {
this.logger.info("update not available")
win.loadFile('src/client/login.html')
} else {
this.displayError(win, showNotification, "Server return " + response.status + " http code")
}
}
}).catch(err => {
this.displayError(win, showNotification, err)
})
}
}
displayError(win, showNotification, errorMessage) {
this.logger.error('There was a problem updating the application')
this.logger.error(errorMessage)
win.loadFile('src/client/login.html').then(() => {
showNotification("Une erreur est survenue lors de la vérification de la mise à jour", "Veuillez vérifier votre connexion internet et réessayer", "error")
}) })
} }

View File

@ -18,6 +18,17 @@
ora "^5.0.0" ora "^5.0.0"
pretty-ms "^7.0.0" pretty-ms "^7.0.0"
"@electron-forge/async-ora@6.0.0-beta.67":
version "6.0.0-beta.67"
resolved "https://registry.yarnpkg.com/@electron-forge/async-ora/-/async-ora-6.0.0-beta.67.tgz#c5740d19e4d836cb856ac4c0ca897acbdc11da83"
integrity sha512-pqQlxHRnECDAAQhi3U2JgSj60TBv3e3ZLvL9Wv+dIBVv64Oc2QTRrryO5Svd7w2J1t+enVwQue18IrVaYUjw0w==
dependencies:
chalk "^4.0.0"
debug "^4.3.1"
log-symbols "^4.0.0"
ora "^5.0.0"
pretty-ms "^7.0.0"
"@electron-forge/cli@^6.0.0-beta.65": "@electron-forge/cli@^6.0.0-beta.65":
version "6.0.0-beta.65" version "6.0.0-beta.65"
resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.0-beta.65.tgz#1a23546693a8ada6377c0a1672bac42633c289f2" resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.0-beta.65.tgz#1a23546693a8ada6377c0a1672bac42633c289f2"
@ -151,6 +162,15 @@
fs-extra "^10.0.0" fs-extra "^10.0.0"
which "^2.0.2" which "^2.0.2"
"@electron-forge/maker-base@6.0.0-beta.67":
version "6.0.0-beta.67"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.0-beta.67.tgz#4c7f5d8e8b3c0008b3de4218aac4daac83e40786"
integrity sha512-WYwY01zEUr1II5lXiaGmGDUZ12swB/MJBOE5JNtGnirh6y/0MlSWhQOjbZxmLG72MrKbnEjvyqOb/8+3Yk4hzg==
dependencies:
"@electron-forge/shared-types" "6.0.0-beta.67"
fs-extra "^10.0.0"
which "^2.0.2"
"@electron-forge/maker-squirrel@^6.0.0-beta.65": "@electron-forge/maker-squirrel@^6.0.0-beta.65":
version "6.0.0-beta.65" version "6.0.0-beta.65"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.65.tgz#84bbea588464d66b22aa7431104d5b396548583a" resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.65.tgz#84bbea588464d66b22aa7431104d5b396548583a"
@ -162,6 +182,16 @@
optionalDependencies: optionalDependencies:
electron-winstaller "^5.0.0" electron-winstaller "^5.0.0"
"@electron-forge/maker-zip@^6.0.0-beta.67":
version "6.0.0-beta.67"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.67.tgz#812ab0572f7fb44203b7c833d8ede90aeb396a60"
integrity sha512-T5Zr3Ye+LGaBZlFd3EOv4kTSfEIvj62/RRMtx4xOCqCTeAdzMlR99q53JR43ghXG3FPWy5JlBVCmTutI96jOZA==
dependencies:
"@electron-forge/maker-base" "6.0.0-beta.67"
"@electron-forge/shared-types" "6.0.0-beta.67"
cross-zip "^4.0.0"
fs-extra "^10.0.0"
"@electron-forge/plugin-base@6.0.0-beta.65": "@electron-forge/plugin-base@6.0.0-beta.65":
version "6.0.0-beta.65" version "6.0.0-beta.65"
resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.65.tgz#65f78a92970b6adb6fd94831ffefa402ecbd5ff0" resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.65.tgz#65f78a92970b6adb6fd94831ffefa402ecbd5ff0"
@ -202,6 +232,16 @@
electron-rebuild "^3.2.6" electron-rebuild "^3.2.6"
ora "^5.0.0" ora "^5.0.0"
"@electron-forge/shared-types@6.0.0-beta.67":
version "6.0.0-beta.67"
resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.0-beta.67.tgz#1fd01ceff4c4868892382f1dc73e5c0ea19c29e6"
integrity sha512-QzL0yINK2d98trUbhrJPnIKhhhQSKOoiUBG0GM44dR0pstdOexNMNdgWX2+48PHiDwiqosgQBB9b47uJCrPR0Q==
dependencies:
"@electron-forge/async-ora" "6.0.0-beta.67"
electron-packager "^16.0.0"
electron-rebuild "^3.2.6"
ora "^5.0.0"
"@electron-forge/template-base@6.0.0-beta.65": "@electron-forge/template-base@6.0.0-beta.65":
version "6.0.0-beta.65" version "6.0.0-beta.65"
resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.0-beta.65.tgz#64e926e2bc8b3b5f672df939690d60d47d4483d5" resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.0-beta.65.tgz#64e926e2bc8b3b5f672df939690d60d47d4483d5"
@ -260,6 +300,22 @@
global-agent "^3.0.0" global-agent "^3.0.0"
global-tunnel-ng "^2.7.1" global-tunnel-ng "^2.7.1"
"@electron/get@^2.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.1.tgz#d960dd4bdbeb44613af7c196231e376ef4c48a6f"
integrity sha512-8nmTGC/3/6IaEfeTcQwtJdjLA/L3sb0XQJUv9x3ZfM0pfmKvkSdelbT4pgF3dpCQOvSmJ97kYAvFltikVjfepA==
dependencies:
debug "^4.1.1"
env-paths "^2.2.0"
fs-extra "^8.1.0"
got "^11.8.5"
progress "^2.0.3"
semver "^6.2.0"
sumchecker "^3.0.1"
optionalDependencies:
global-agent "^3.0.0"
global-tunnel-ng "^2.7.1"
"@electron/universal@^1.2.1": "@electron/universal@^1.2.1":
version "1.2.1" version "1.2.1"
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.1.tgz#3c2c4ff37063a4e9ab1e6ff57db0bc619bc82339" resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.1.tgz#3c2c4ff37063a4e9ab1e6ff57db0bc619bc82339"
@ -1125,6 +1181,11 @@ cross-spawn@^7.0.1:
shebang-command "^2.0.0" shebang-command "^2.0.0"
which "^2.0.1" which "^2.0.1"
cross-zip@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cross-zip/-/cross-zip-4.0.0.tgz#c29bfb2c001659a6d480ae9596f3bee83b48a230"
integrity sha512-MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA==
csstype@^2.6.8: csstype@^2.6.8:
version "2.6.20" version "2.6.20"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
@ -1368,6 +1429,31 @@ electron-packager@^15.4.0:
semver "^7.1.3" semver "^7.1.3"
yargs-parser "^20.0.0" yargs-parser "^20.0.0"
electron-packager@^16.0.0:
version "16.0.0"
resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-16.0.0.tgz#2eb7f14114e06b545207496ef66b10c24b7c8ba1"
integrity sha512-7Ey4UUaHg3FYhA7ktsAvCWP8srp9+iPljGdeJBsNaZBakU6HWhvRC+Pc7LWXGCgAVIN5BQsUwR3xrCbFno91VA==
dependencies:
"@electron/get" "^2.0.0"
"@electron/universal" "^1.2.1"
asar "^3.1.0"
cross-spawn-windows-exe "^1.2.0"
debug "^4.0.1"
electron-notarize "^1.1.1"
electron-osx-sign "^0.5.0"
extract-zip "^2.0.0"
filenamify "^4.1.0"
fs-extra "^10.1.0"
galactus "^0.2.1"
get-package-info "^1.0.0"
junk "^3.1.0"
parse-author "^2.0.0"
plist "^3.0.0"
rcedit "^3.0.1"
resolve "^1.1.6"
semver "^7.1.3"
yargs-parser "^21.1.1"
electron-rebuild@^3.2.6: electron-rebuild@^3.2.6:
version "3.2.7" version "3.2.7"
resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-3.2.7.tgz#0f56c1cc99a6fec0a5b990532283c2a8c838c19b" resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-3.2.7.tgz#0f56c1cc99a6fec0a5b990532283c2a8c838c19b"
@ -1664,7 +1750,7 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-extra@^10.0.0: fs-extra@^10.0.0, fs-extra@^10.1.0:
version "10.1.0" version "10.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
@ -3876,6 +3962,11 @@ yargs-parser@^21.0.0:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
yargs@^17.0.1: yargs@^17.0.1:
version "17.5.1" version "17.5.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e"