From 93ccec0fbf2dab3d745d16e8123d5a4b386184f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=A0indel=C3=A1=C5=99?= <25355950+megastary@users.noreply.github.com> Date: Wed, 29 Apr 2020 23:50:25 +0200 Subject: [PATCH] WIP Added update button Need to finish GUI to show user that application checks for updates, finds them, downloads them and installs them --- package.json | 4 +++- quasar.conf.js | 2 +- src/boot/electron-log.js | 4 ++++ src/pages/AboutPage.vue | 20 ++++++++++++++++++++ yarn.lock | 40 +++++++++++++++++++++++++++++++++++++++- 5 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 src/boot/electron-log.js diff --git a/package.json b/package.json index a4f9632..68ef263 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lazy-admin", - "version": "0.0.2", + "version": "0.0.3", "description": "GUI for PowerShell scripts to simplify day to day IT tasks.", "productName": "Lazy Admin", "cordovaId": "eu.houby-studio.lazy-admin", @@ -14,6 +14,8 @@ }, "dependencies": { "@quasar/extras": "^1.6.4", + "electron-log": "^4.1.1", + "electron-updater": "^4.3.1", "node-powershell": "^4.0.0", "quasar": "^1.9.16", "vue-clipboard2": "^0.3.1", diff --git a/quasar.conf.js b/quasar.conf.js index 6882e02..5b50b29 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -6,7 +6,7 @@ module.exports = function (ctx) { // app boot file (/src/boot) // --> boot files are part of "main.js" // https://quasar.dev/quasar-cli/cli-documentation/boot-files - boot: ['i18n', 'powershell', 'titlebar-color', 'clipboard2'], + boot: ['electron-log', 'i18n', 'powershell', 'titlebar-color', 'clipboard2'], // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css css: ['app.sass'], diff --git a/src/boot/electron-log.js b/src/boot/electron-log.js new file mode 100644 index 0000000..701f04a --- /dev/null +++ b/src/boot/electron-log.js @@ -0,0 +1,4 @@ +import log from 'electron-log' + +// Override default console.log with electron-log function +console.log = log.log diff --git a/src/pages/AboutPage.vue b/src/pages/AboutPage.vue index ed80448..af8a1de 100644 --- a/src/pages/AboutPage.vue +++ b/src/pages/AboutPage.vue @@ -35,6 +35,7 @@ type="submit" ref="update" :label="$t('update')" + @click="checkUpdate" /> @@ -51,6 +52,25 @@ export default { return require('electron').remote.app.getVersion() } } + }, + methods: { + checkUpdate () { + const { autoUpdater } = this.$q.electron.remote.require('electron-updater') + autoUpdater.checkForUpdates() + } + }, + created () { + const { autoUpdater } = this.$q.electron.remote.require('electron-updater') + // Register event listener when update is found + autoUpdater.on('update-available', () => { + console.log('New update was found, downloading.') + autoUpdater.downloadUpdate() + }) + // Register event listener when update is found + autoUpdater.on('update-downloaded', () => { + console.log('New update was succesfully downloaded.') + }) + // TODO: Add other events to handle GUI events https://www.electronjs.org/docs/api/auto-updater#events } } diff --git a/yarn.lock b/yarn.lock index ed2e88d..eb58f84 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1230,6 +1230,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== +"@types/semver@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.1.0.tgz#c8c630d4c18cd326beff77404887596f96408408" + integrity sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA== + dependencies: + "@types/node" "*" + "@types/serve-static@*": version "1.13.3" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" @@ -2413,6 +2420,14 @@ builder-util-runtime@8.6.2: debug "^4.1.1" sax "^1.2.4" +builder-util-runtime@8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.0.tgz#e48ad004835c8284662e8eaf47a53468c66e8e8d" + integrity sha512-G1AqqVM2vYTrSFR982c1NNzwXKrGLQjVjaZaWQdn4O6Z3YKjdMDofw88aD9jpyK9ZXkrCxR0tI3Qe9wNbyTlXg== + dependencies: + debug "^4.1.1" + sax "^1.2.4" + builder-util@22.4.1, builder-util@~22.4.1: version "22.4.1" resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.4.1.tgz#49cce9f06a62cdccda66d5efa82077040fa1f462" @@ -3869,6 +3884,11 @@ electron-localshortcut@^3.1.0: keyboardevent-from-electron-accelerator "^2.0.0" keyboardevents-areequal "^0.2.1" +electron-log@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.1.1.tgz#c57e3d833f723742eb430dc2cdaa6f97d8dbcaff" + integrity sha512-vkK3rNBOciRiinxrsdgg8hyUia+ct8ZMjBblvKjgNk4uHEDjjSyn313NOwv75xOMVIKlfmYzxaN8kR/oGC33aQ== + electron-notarize@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91" @@ -3944,6 +3964,19 @@ electron-to-chromium@^1.3.413: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.421.tgz#4abfe7e49070b5b437ec2ce442543add8eb66800" integrity sha512-ogxgmvHGfDuLA+GtgfK0jkFWlBb4MCZK2U1MM+l98sf4U3Ixtrfw1iC9w4mQqNvo+lHgM4pR62TqoT4QrvKJCw== +electron-updater@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.1.tgz#9d485b6262bc56fcf7ee62b1dc1b3b105a3e96a7" + integrity sha512-UDC5AHCgeiHJYDYWZG/rsl1vdAFKqI/Lm7whN57LKAk8EfhTewhcEHzheRcncLgikMcQL8gFo1KeX51tf5a5Wg== + dependencies: + "@types/semver" "^7.1.0" + builder-util-runtime "8.7.0" + fs-extra "^9.0.0" + js-yaml "^3.13.1" + lazy-val "^1.0.4" + lodash.isequal "^4.5.0" + semver "^7.1.3" + electron@^7.0.0: version "7.1.10" resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.10.tgz#35d5aa41ee3f233613e37ef4245b83c23001628b" @@ -4771,7 +4804,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@9.0.0: +fs-extra@9.0.0, fs-extra@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== @@ -6443,6 +6476,11 @@ lodash.get@^4.0.0: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"