From b6990f754367b8d45bd302d54eeb7fde0e7dce11 Mon Sep 17 00:00:00 2001 From: Guillermo Rauch Date: Thu, 7 Jul 2016 07:46:58 -0700 Subject: [PATCH] simplify config --- config-init.js | 20 -------------------- config-path.js | 4 ---- config.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 24 deletions(-) delete mode 100644 config-init.js delete mode 100644 config-path.js create mode 100644 config.js diff --git a/config-init.js b/config-init.js deleted file mode 100644 index 44da8ebe..00000000 --- a/config-init.js +++ /dev/null @@ -1,20 +0,0 @@ -const { resolve } = require('path'); -const { statSync, readFileSync, writeFileSync } = require('fs'); -const file = require('./config-path'); - -module.exports = function initConfig () { - try { - statSync(file); - } catch (err) { - console.log('stat error', file, err.message); - const defaultConfig = readFileSync(resolve(__dirname, 'config-default.js')); - try { - console.log('attempting to write default config to', file); - writeFileSync(file, defaultConfig); - } catch (err) { - throw new Error(`Failed to write config to ${file}`); - } - } - - return file; -}; diff --git a/config-path.js b/config-path.js deleted file mode 100644 index 289dca92..00000000 --- a/config-path.js +++ /dev/null @@ -1,4 +0,0 @@ -const { homedir } = require('os'); -const { resolve } = require('path'); - -module.exports = resolve(homedir(), '.hyperterm.js'); diff --git a/config.js b/config.js new file mode 100644 index 00000000..8a5dc415 --- /dev/null +++ b/config.js @@ -0,0 +1,43 @@ +// const { ipcMain } = require('electron'); +const { homedir } = require('os'); +const { resolve } = require('path'); +const { readFileSync, writeFileSync } = require('fs'); +const gaze = require('gaze'); +const vm = require('vm'); + +const path = resolve(homedir(), '.hyperterm.js'); + +let cfg = {}; + +function watch () { + gaze(path, () => { + console.log('a change happened'); + }); +} + +function exec (str) { + const script = new vm.Script(str); + const mod = {}; + script.runInNewContext(mod); +} + +exports.init = function () { + try { + exec(readFileSync(path, 'utf8')); + } catch (err) { + console.log('read error', path, err.message); + const defaultConfig = readFileSync(resolve(__dirname, 'config-default.js')); + try { + console.log('attempting to write default config to', path); + cfg = exec(defaultConfig); + writeFileSync(path, defaultConfig); + } catch (err) { + throw new Error(`Failed to write config to ${path}`); + } + } + watch(); +}; + +exports.get = function () { + return cfg; +};