From: anthony Date: Mon, 11 Jun 2018 02:08:35 +0000 (-0400) Subject: adding gui via electron X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=c170d5e0af50f8a7c0b77ad8758f0d869444f130;p=WP-Themes%2FglmOrigin.git adding gui via electron --- diff --git a/gulpfile.js b/gulpfile.js index ae44235..d1929e0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -29,10 +29,10 @@ gulp.task('sass', function() { .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()) diff --git a/package-lock.json b/package-lock.json index 0c6a2bc..6e67150 100644 --- a/package-lock.json +++ b/package-lock.json @@ -416,6 +416,12 @@ "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", @@ -669,6 +675,50 @@ "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", @@ -833,6 +883,12 @@ "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", @@ -981,6 +1037,41 @@ "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", @@ -1011,6 +1102,12 @@ "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", @@ -1159,6 +1256,18 @@ } } }, + "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", @@ -1188,6 +1297,15 @@ "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", @@ -1305,6 +1423,27 @@ "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", @@ -2255,6 +2394,12 @@ } } }, + "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", @@ -2641,6 +2786,24 @@ "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", @@ -2659,6 +2822,24 @@ "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", @@ -3435,6 +3616,21 @@ "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", @@ -3680,6 +3876,12 @@ } } }, + "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", @@ -3794,6 +3996,16 @@ "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", @@ -3805,6 +4017,37 @@ "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", @@ -3823,6 +4066,26 @@ "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", @@ -4204,6 +4467,15 @@ "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", @@ -4374,6 +4646,12 @@ "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", @@ -4478,6 +4756,16 @@ "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", @@ -4495,6 +4783,12 @@ "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", @@ -4631,6 +4925,12 @@ "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", @@ -5032,6 +5332,15 @@ "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" + } } } } diff --git a/package.json b/package.json index 05c25b9..175820f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,12 @@ "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", diff --git a/setup.sh b/setup.sh deleted file mode 100644 index e8565a3..0000000 --- a/setup.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/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("-----------------------"); diff --git a/setup/index.html b/setup/index.html new file mode 100644 index 0000000..071da17 --- /dev/null +++ b/setup/index.html @@ -0,0 +1,18 @@ + + + + + App + + + + + + +

GLM Origin Theme Setup

+
+ +
+ + + \ No newline at end of file diff --git a/setup/main.js b/setup/main.js new file mode 100644 index 0000000..2e1306f --- /dev/null +++ b/setup/main.js @@ -0,0 +1,7 @@ +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 diff --git a/setup/moduleSetup.js b/setup/moduleSetup.js new file mode 100644 index 0000000..e69de29 diff --git a/setup/renderer.js b/setup/renderer.js new file mode 100644 index 0000000..f24823a --- /dev/null +++ b/setup/renderer.js @@ -0,0 +1,129 @@ +//#!/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){ + $('
  • ', { + 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 diff --git a/setup/setup.css b/setup/setup.css new file mode 100644 index 0000000..2c518bb --- /dev/null +++ b/setup/setup.css @@ -0,0 +1,22 @@ +#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 diff --git a/setup/setup.sh b/setup/setup.sh new file mode 100644 index 0000000..7d39ed2 --- /dev/null +++ b/setup/setup.sh @@ -0,0 +1,72 @@ +#!/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("-----------------------"); diff --git a/setup/setupt.js b/setup/setupt.js new file mode 100644 index 0000000..f9c8df0 --- /dev/null +++ b/setup/setupt.js @@ -0,0 +1,46 @@ +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 diff --git a/setupt.js b/setupt.js deleted file mode 100644 index f9c8df0..0000000 --- a/setupt.js +++ /dev/null @@ -1,46 +0,0 @@ -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