.pipe(maps.write('.'))
.pipe(gulp.dest('dist'));
});
-// gulp.task('copy-bower', function () {
-// return gulp.src(['bower_components/foundation/js/foundation.min.js'])
-// .pipe(gulp.dest('dev/core/defaults'));
-// });
+gulp.task('copy-bower', function () {
+ return gulp.src(['bower_components/foundation/js/foundation.min.js'])
+ .pipe(gulp.dest('dist'));
+});
gulp.task('lint', function (){
return gulp.src('dev/js/custom/**/*.js')
.pipe(jshint())
"electron-to-chromium": "1.3.48"
}
},
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true
+ },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "1.1.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "typedarray": "0.0.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ }
+ }
+ },
"concat-with-sourcemaps": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true
+ },
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"jsbn": "0.1.1"
}
},
+ "electron-download": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz",
+ "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "fs-extra": "0.30.0",
+ "home-path": "1.0.6",
+ "minimist": "1.2.0",
+ "nugget": "2.0.1",
+ "path-exists": "2.1.0",
+ "rc": "1.2.8",
+ "semver": "5.5.0",
+ "sumchecker": "1.3.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ }
+ }
+ },
+ "electron-prebuilt": {
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/electron-prebuilt/-/electron-prebuilt-1.4.13.tgz",
+ "integrity": "sha1-Cg5Ne/iVokIGHM+rKTlNzaHaM9I=",
+ "dev": true,
+ "requires": {
+ "electron-download": "3.3.0",
+ "extract-zip": "1.6.7"
+ }
+ },
"electron-to-chromium": {
"version": "1.3.48",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz",
"is-arrayish": "0.2.1"
}
},
+ "es6-promise": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
+ "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
+ "dev": true
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
}
}
},
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ }
+ },
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true
},
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "1.2.0"
+ }
+ },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"map-cache": "0.2.2"
}
},
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "2.4.0",
+ "klaw": "1.3.1",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.6.2"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
}
}
},
+ "home-path": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz",
+ "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==",
+ "dev": true
+ },
"homedir-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
},
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
"set-blocking": "2.0.0"
}
},
+ "nugget": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
+ "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "minimist": "1.2.0",
+ "pretty-bytes": "1.0.4",
+ "progress-stream": "1.2.0",
+ "request": "2.87.0",
+ "single-line-log": "1.1.2",
+ "throttleit": "0.0.2"
+ }
+ },
"num2fraction": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
}
}
},
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
"dev": true
},
+ "pretty-bytes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
+ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "meow": "3.7.0"
+ }
+ },
"pretty-hrtime": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
+ "progress-stream": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz",
+ "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=",
+ "dev": true,
+ "requires": {
+ "speedometer": "0.1.4",
+ "through2": "0.2.3"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
+ "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "1.1.14",
+ "xtend": "2.1.2"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "0.4.0"
+ }
+ }
+ }
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "requires": {
+ "deep-extend": "0.6.0",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ }
+ }
+ },
"rcfinder": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
+ "single-line-log": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
+ "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
"dev": true
},
+ "speedometer": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
+ "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
+ "dev": true
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
"dev": true
},
+ "sumchecker": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz",
+ "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "es6-promise": "4.2.4"
+ }
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"inherits": "2.0.3"
}
},
+ "throttleit": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
+ "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
+ "dev": true
+ },
"through": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.4.tgz",
"dev": true,
"optional": true
},
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"dev": true
}
}
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "1.0.1"
+ }
}
}
}
"name": "glmOrigin",
"description": "Gaslight Media",
"version": "0.0.1",
+ "main": "setup/main.js",
+ "scripts": {
+ "start": "electron ."
+ },
"devDependencies": {
+ "electron-prebuilt": "^1.4.13",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean": "^0.3.2",
+++ /dev/null
-#!/usr/bin/env node
-const path = require('path');
-const fs = require('fs');
-const merge = require('merge-stream');
-
-const modPaths = ['dev/core/', 'dev/custom/'];
-
- function getFolders(dir) {
- return fs.readdirSync(dir)
- .filter(function(file) {
- return fs.statSync(path.join(dir, file)).isDirectory();
- });
- }
-function sliceAtSpace(str) {
- console.log(str)
- return str.split(' ')[1];
-}
-var lineReader = require('readline').createInterface({
- input: require('fs').createReadStream('dev/app.scss')
-});
-let modName = '';
-lineReader.on('line', function (line) {
- console.log(line)
- if(!line.match(/[^ ]/)){
- // SKIP
- }else{
- if(line.startsWith('//')){
- console.log('DISABLED: ', line);
- }else if(!line.startsWith('//') && !line.startsWith('/*')){
- if(line.indexOf("/") > -1){
- console.log("DEEP")
- modName = line.substr(line.lastIndexOf('/') + 1);
- modName = modName.replace(/[^\w\s\-]/gi, '')
- }else if(line.indexOf(" ") > -1){
- console.log(modName, "MOD")
- modName = modName.substr(modName.indexOf(" ") + 1);
- modName = line.match( /"(.*?)"/ );
- modName = line.substr(line.lastIndexOf('/') + 1);
- }
- console.log(modName);
- }
- }
-});
-
-
-// var folders = getFolders(modPaths);
-// var tasks = folders.map(function(folder) {
-// return path.join(modPaths, folder, '/**/*.js')
-// // concat into foldername.js
-// .pipe(concat(folder + '.js'))
-// // write to output
-// .pipe(gulp.dest(modPaths))
-// // minify
-// .pipe(uglify())
-// // rename to folder.min.js
-// .pipe(rename(folder + '.min.js'))
-// // write to output again
-// .pipe(gulp.dest(modPaths));
-// });
-
-// // process all remaining files in scriptsPath root into main.js and main.min.js files
-// var root = gulp.src(path.join(scriptsPath, '/*.js'))
-// .pipe(concat('main.js'))
-// .pipe(gulp.dest(scriptsPath))
-// .pipe(uglify())
-// .pipe(rename('main.min.js'))
-// .pipe(gulp.dest(scriptsPath));
-
-// return merge(tasks, root);
-
-console.log("GLM Origin Theme Setup");
-console.log("-----------------------");
--- /dev/null
+<!doctype html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>App</title>
+ <script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
+ <link rel="stylesheet" type="text/css" href="setup.css"></link>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+ <script>if (window.module) module = window.module; var $ = jQuery; </script>
+</head>
+<body>
+ <h3>GLM Origin Theme Setup</h3>
+ <div id="module-list-container">
+ <ul id="module-list"></ul>
+ </div>
+ <script src="renderer.js"></script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+const { app, BrowserWindow } = require('electron');
+let win;
+function createWindow() {
+ win = new BrowserWindow({ width: 800, height: 600 });
+ win.loadURL(`file://${__dirname}/index.html`);
+}
+app.on('ready', createWindow);
\ No newline at end of file
--- /dev/null
+//#!/usr/bin/env node
+const path = require('path');
+const fs = require('fs');
+const merge = require('merge-stream');
+
+const modPaths = ['dev/core/', 'dev/custom/'];
+var lineReader = require('readline').createInterface({
+ input: require('fs').createReadStream('dev/app.scss')
+});
+String.prototype.stripSlashes = function(){
+ return this.replace(/\\(.)/mg, "$1");
+}
+function getFolders(dir) {
+ return fs.readdirSync(dir)
+ .filter(function(file) {
+ return fs.statSync(path.join(dir, file)).isDirectory();
+ });
+ }
+function sliceAtSpace(str) {
+ return str.split(' ')[1];
+}
+// Display Active and In-Active Modules
+let moduleObjs = [];
+let modStorage = {};
+let modName = '';
+
+function readLines(mode, state){
+ if(mode === 'parse'){
+ console.log("start parse")
+ lineReader.on('line', function (line) {
+ parseModules(this, line);
+ });
+ }else if( mode === "edit"){
+ fs.readFile(state.path, 'utf8', function (err,data) {
+ var result;
+ if (err) {
+ return console.log(err);
+ }
+ // console.log(data);
+ if(state.active){
+ var newLine = state.line.substr(2);
+ }else{
+ var newLine = "//" + state.line;
+ }
+ result = data.replace(state.line, newLine);
+ // var result = data.replace(/string to be replaced/g, 'replacement');
+
+ fs.writeFile(state.path, result, 'utf8', function (err) {
+ if (err) return console.log(err);
+ });
+ });
+ }
+}
+
+function parseModules(reader,line){
+ let active = true;
+ if(!line.match(/[^ ]/) || line.startsWith('/*')){
+ // nothing
+ }else{
+ if(line.startsWith('//')){
+ modName = line.substr(line.lastIndexOf('/') + 1);
+ modName = modName.replace(/[^\w\s\-]/gi, '')
+ active = false;
+ }else if(!line.startsWith('//')){
+ if(line.indexOf("/") > -1){
+ modName = line.substr(line.lastIndexOf('/') + 1);
+ modName = modName.replace(/[^\w\s\-]/gi, '')
+ }else if(line.indexOf(" ") > -1){
+ modName = line.match( /"(.*?)"/ )[1];
+ //modName = line.substr(line.lastIndexOf('/') + 1);
+ }
+ active = true;
+ }
+ moduleObjs.push({path: reader.input.path, line: line, modName: modName, active: active})
+ modStorage.mods = moduleObjs;
+ localStorage.setItem("modules", JSON.stringify(modStorage))
+ }
+}
+// true is used for init parsing of theme modules, edit is to activate or de-activate modules
+// true is called initially when scanning the app.scss file for commented modules
+// edit is called when selectively activating and de-activating modules from the GUI
+// last param is the path to the file to be editted since we can't use the readLine Stream again (idk how yet)
+function scanModules(parse, edit, state){
+ if(parse) {
+ console.log("init parse")
+ readLines("parse");
+ }else if(edit){
+ readLines("edit", state)
+ }
+}
+
+
+console.log("HIT THE PAGE")
+scanModules(true, false, false, false);
+
+let modList = $("#module-list");
+let allModules = JSON.parse(localStorage.getItem("modules"))
+
+allModules.mods.forEach(function(module){
+ $('<li />', {
+ class: `module-item module-active-${module.active}`,
+ id: `${module.modName}`,
+ text: `${module.modName}`
+ }).appendTo(modList)
+});
+
+
+// On Click Set Mod State
+$('.module-item').on("click", function(){
+
+ let _ = $(this);
+ let modName = _.attr("id");
+ let thisMod = allModules.mods.filter( function(mod){
+ return mod.modName === modName;
+ });
+ let state = {path: thisMod[0]. path, line: thisMod[0].line}
+
+ if( _.hasClass("module-active-true") ){
+ state.active = false;
+ _.removeClass("module-active-true");
+ _.addClass("module-active-false");
+ }else if( _.hasClass("module-active-false") ){
+ state.active = true;
+ _.removeClass("module-active-false");
+ _.addClass("module-active-true");
+ }
+
+ scanModules(false, true , state)
+})
\ No newline at end of file
--- /dev/null
+#module-list-container{
+
+}
+#module-list-container ul#module-list{
+ list-style-type: none;
+ padding: 0;
+}
+#module-list-container ul#module-list li.module-item{
+ padding: 5px 8px;
+ margin: 5px;
+ display: inline-block;
+}
+#module-list-container ul#module-list li.module-item:hover{
+ cursor: pointer;
+}
+#module-list-container ul#module-list li.module-item.module-active-true{
+ background: lightgreen;
+
+}
+#module-list-container ul#module-list li.module-item.module-active-false{
+ background: tomato;
+}
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env node
+const path = require('path');
+const fs = require('fs');
+const merge = require('merge-stream');
+
+const modPaths = ['dev/core/', 'dev/custom/'];
+ var myArgs = process.argv.slice(2);
+ console.log('myArgs: ', myArgs);
+
+ function getFolders(dir) {
+ return fs.readdirSync(dir)
+ .filter(function(file) {
+ return fs.statSync(path.join(dir, file)).isDirectory();
+ });
+ }
+function sliceAtSpace(str) {
+ console.log(str)
+ return str.split(' ')[1];
+}
+var lineReader = require('readline').createInterface({
+ input: require('fs').createReadStream('dev/app.scss')
+});
+
+// Display Active and In-Active Modules
+let modName = '';
+lineReader.on('line', function (line) {
+ if(!line.match(/[^ ]/)){
+ // nothing
+ }else{
+ if(line.startsWith('//')){
+ console.log('DISABLED: ', line);
+ }else if(!line.startsWith('//') && !line.startsWith('/*')){
+ if(line.indexOf("/") > -1){
+ modName = line.substr(line.lastIndexOf('/') + 1);
+ modName = modName.replace(/[^\w\s\-]/gi, '')
+ }else if(line.indexOf(" ") > -1){
+ modName = line.match( /"(.*?)"/ )[1];
+ //modName = line.substr(line.lastIndexOf('/') + 1);
+ }
+ console.log("ACTIVE: " + modName);
+ }
+ }
+});
+
+
+// var folders = getFolders(modPaths);
+// var tasks = folders.map(function(folder) {
+// return path.join(modPaths, folder, '/**/*.js')
+// // concat into foldername.js
+// .pipe(concat(folder + '.js'))
+// // write to output
+// .pipe(gulp.dest(modPaths))
+// // minify
+// .pipe(uglify())
+// // rename to folder.min.js
+// .pipe(rename(folder + '.min.js'))
+// // write to output again
+// .pipe(gulp.dest(modPaths));
+// });
+
+// // process all remaining files in scriptsPath root into main.js and main.min.js files
+// var root = gulp.src(path.join(scriptsPath, '/*.js'))
+// .pipe(concat('main.js'))
+// .pipe(gulp.dest(scriptsPath))
+// .pipe(uglify())
+// .pipe(rename('main.min.js'))
+// .pipe(gulp.dest(scriptsPath));
+
+// return merge(tasks, root);
+
+console.log("GLM Origin Theme Setup");
+console.log("-----------------------");
--- /dev/null
+const path = require('path');
+const fs = require('fs');
+const merge = require('merge-stream');
+const lineReader = require('readline')
+
+const modPaths = ['dev/core/', 'dev/custom/'];
+
+function getFolders(dir) {
+ return fs.readdirSync(dir)
+ .filter(function(file) {
+ return fs.statSync(path.join(dir, file)).isDirectory();
+ });
+}
+lineReader.createInterface({
+ input: require('fs').createReadStream('robots.txt')
+});
+
+ lineReader.on('line', function (line) {
+ console.log('Line from file:', line);
+ });
+// var folders = getFolders(modPaths);
+// var tasks = folders.map(function(folder) {
+// return path.join(modPaths, folder, '/**/*.js')
+// // concat into foldername.js
+// .pipe(concat(folder + '.js'))
+// // write to output
+// .pipe(gulp.dest(modPaths))
+// // minify
+// .pipe(uglify())
+// // rename to folder.min.js
+// .pipe(rename(folder + '.min.js'))
+// // write to output again
+// .pipe(gulp.dest(modPaths));
+// });
+
+// // process all remaining files in scriptsPath root into main.js and main.min.js files
+// var root = gulp.src(path.join(scriptsPath, '/*.js'))
+// .pipe(concat('main.js'))
+// .pipe(gulp.dest(scriptsPath))
+// .pipe(uglify())
+// .pipe(rename('main.min.js'))
+// .pipe(gulp.dest(scriptsPath));
+
+// return merge(tasks, root);
+console.log("GLM Origin Theme Setup");
+console.log("-----------------------");
\ No newline at end of file
+++ /dev/null
-const path = require('path');
-const fs = require('fs');
-const merge = require('merge-stream');
-const lineReader = require('readline')
-
-const modPaths = ['dev/core/', 'dev/custom/'];
-
-function getFolders(dir) {
- return fs.readdirSync(dir)
- .filter(function(file) {
- return fs.statSync(path.join(dir, file)).isDirectory();
- });
-}
-lineReader.createInterface({
- input: require('fs').createReadStream('robots.txt')
-});
-
- lineReader.on('line', function (line) {
- console.log('Line from file:', line);
- });
-// var folders = getFolders(modPaths);
-// var tasks = folders.map(function(folder) {
-// return path.join(modPaths, folder, '/**/*.js')
-// // concat into foldername.js
-// .pipe(concat(folder + '.js'))
-// // write to output
-// .pipe(gulp.dest(modPaths))
-// // minify
-// .pipe(uglify())
-// // rename to folder.min.js
-// .pipe(rename(folder + '.min.js'))
-// // write to output again
-// .pipe(gulp.dest(modPaths));
-// });
-
-// // process all remaining files in scriptsPath root into main.js and main.min.js files
-// var root = gulp.src(path.join(scriptsPath, '/*.js'))
-// .pipe(concat('main.js'))
-// .pipe(gulp.dest(scriptsPath))
-// .pipe(uglify())
-// .pipe(rename('main.min.js'))
-// .pipe(gulp.dest(scriptsPath));
-
-// return merge(tasks, root);
-console.log("GLM Origin Theme Setup");
-console.log("-----------------------");
\ No newline at end of file