From 8bd505da363248e47cc102d67f611bc6f4a7c80c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 22 Feb 2019 13:33:48 -0500 Subject: [PATCH] Save and restore settings, including profiles. --- app/lib/settings/index.js | 9 +-- app/lib/ui/devices.js | 8 +-- app/main.js | 13 ++++- app/package-lock.json | 118 ++++++++++++++++++++++++++++++++++++-- app/package.json | 1 + 5 files changed, 132 insertions(+), 17 deletions(-) diff --git a/app/lib/settings/index.js b/app/lib/settings/index.js index c607b4f..4a69c97 100644 --- a/app/lib/settings/index.js +++ b/app/lib/settings/index.js @@ -1,3 +1,5 @@ +'use strict' + const os = require('os'); const path = require('path'); const fs = require('fs-extra'); @@ -17,7 +19,6 @@ settings.state = { } settings.checkDir = async function () { - 'use strict'; const dir = path.join(os.homedir(), '.mcopy/'); const exists = await fs.exists(dir) if (!exists) { @@ -32,7 +33,6 @@ settings.checkDir = async function () { } settings.save = async function () { - 'use strict'; const str = JSON.stringify(settings.state, null, '\t'); settings.checkDir(); try { @@ -42,22 +42,18 @@ settings.save = async function () { } } settings.update = function (key, val) { - 'use strict'; settings.state[key] = val; } settings.get = function (key) { - 'use strict'; return settings.state[key]; } settings.all = function () { - 'use strict'; return settings.state; } settings.restore = async function () { - 'use strict'; let exists; let str; @@ -73,7 +69,6 @@ settings.restore = async function () { } settings.reset = async function () { - 'use strict'; const exists = await fs.exists(settings.file); if (exists) { try { diff --git a/app/lib/ui/devices.js b/app/lib/ui/devices.js index 8fe670b..95a320a 100644 --- a/app/lib/ui/devices.js +++ b/app/lib/ui/devices.js @@ -1,14 +1,14 @@ - var devices = {}; devices.init = function () { 'use strict'; - devices.listen();; + devices.listen(); devices.profiles(); gui.overlay(true); gui.spinner(true, 'Checking for connected devices...'); }; devices.profiles = function () { + 'use strict'; const keys = Object.keys(mcopy.cfg.profiles); const elem = $('#profile') let opt; @@ -21,10 +21,10 @@ devices.profiles = function () { } elem.on('change', (t) => { devices.profile($('#profile').val()); - }) - devices.profile(keys[0]); + }); }; devices.profile = function (profile) { + 'use strict'; log.info(`Changed configuration profile to "${profile}"`, 'DEVICES', true, true); const p = mcopy.cfg.profiles[profile]; const keys = Object.keys(p); diff --git a/app/main.js b/app/main.js index f6c3953..94af98b 100644 --- a/app/main.js +++ b/app/main.js @@ -23,6 +23,7 @@ const Server = require('server') const Intval = require('intval') const delay = require('delay') +//Objects const mcopy = {} const log = {} const proj = {} @@ -48,6 +49,12 @@ let ffprobe mcopy.cfg = require('./data/cfg.json') mcopy.settings = {} +/** + * + * + * + **/ + dev.init = function () { dev.listen() } @@ -798,6 +805,9 @@ var init = async function () { createWindow() createMenu() + await settings.restore() + mcopy.settings = await settings.all() + log.init() light.init() proj.init() @@ -816,8 +826,7 @@ var init = async function () { arduino = require('./lib/arduino')(mcopy.cfg, ee) mscript = require('./lib/mscript') - settings.restore() - mcopy.settings = settings.all() + await delay(2000) try { diff --git a/app/package-lock.json b/app/package-lock.json index 6267cf1..40be4cc 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -329,6 +329,14 @@ } } }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, "argv-tools": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", @@ -656,8 +664,15 @@ "bluebird": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + }, + "bluebird-lst": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz", + "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==", + "requires": { + "bluebird": "^3.5.2" + } }, "bplist-creator": { "version": "0.0.7", @@ -738,14 +753,34 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" }, + "builder-util-runtime": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz", + "integrity": "sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==", + "requires": { + "bluebird-lst": "^1.0.6", + "debug": "^4.1.1", + "fs-extra-p": "^7.0.0", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -1983,6 +2018,22 @@ } } }, + "electron-updater": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.6.tgz", + "integrity": "sha512-JPGLME6fxJcHG8hX7HWFl6Aew6iVm0DkcrENreKa5SUJCHG+uUaAhxDGDt+YGcNkyx1uJ6eBGMvFxDTLUv67pg==", + "requires": { + "bluebird-lst": "^1.0.6", + "builder-util-runtime": "~8.1.0", + "fs-extra-p": "^7.0.0", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "lodash.isequal": "^4.5.0", + "pako": "^1.0.7", + "semver": "^5.6.0", + "source-map-support": "^0.5.9" + } + }, "electron-wix-msi": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-2.1.1.tgz", @@ -2082,6 +2133,11 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, "exec": { "version": "file:lib/exec" }, @@ -2596,6 +2652,15 @@ } } }, + "fs-extra-p": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz", + "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==", + "requires": { + "bluebird-lst": "^1.0.6", + "fs-extra": "^7.0.0" + } + }, "fs-minipass": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", @@ -3972,6 +4037,15 @@ "integrity": "sha1-+IxgjjJKM3OpW8xFrTBeXJecRZs=", "dev": true }, + "js-yaml": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", + "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "js2xmlparser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", @@ -4132,6 +4206,11 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, + "lazy-val": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", + "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==" + }, "lcid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", @@ -4340,6 +4419,11 @@ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -5304,6 +5388,11 @@ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "optional": true }, + "pako": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==" + }, "parse-author": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", @@ -6461,6 +6550,22 @@ "urix": "^0.1.0" } }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -6551,6 +6656,11 @@ "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, "sqlite3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.0.4.tgz", diff --git a/app/package.json b/app/package.json index e9f94ea..bf29baf 100644 --- a/app/package.json +++ b/app/package.json @@ -43,6 +43,7 @@ "capture": "file:lib/capture", "delay": "file:lib/delay", "display": "file:lib/display", + "electron-updater": "^4.0.6", "exec": "file:lib/exec", "exit": "file:lib/exit", "ffmpeg": "file:lib/ffmpeg",