adding gui via electron
authoranthony <astalarico@gmail.com>
Mon, 11 Jun 2018 02:08:35 +0000 (22:08 -0400)
committeranthony <astalarico@gmail.com>
Mon, 11 Jun 2018 02:08:35 +0000 (22:08 -0400)
12 files changed:
gulpfile.js
package-lock.json
package.json
setup.sh [deleted file]
setup/index.html [new file with mode: 0644]
setup/main.js [new file with mode: 0644]
setup/moduleSetup.js [new file with mode: 0644]
setup/renderer.js [new file with mode: 0644]
setup/setup.css [new file with mode: 0644]
setup/setup.sh [new file with mode: 0644]
setup/setupt.js [new file with mode: 0644]
setupt.js [deleted file]

index ae44235..d1929e0 100644 (file)
@@ -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())
index 0c6a2bc..6e67150 100644 (file)
         "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"
+      }
     }
   }
 }
index 05c25b9..175820f 100644 (file)
@@ -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 (file)
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 (file)
index 0000000..071da17
--- /dev/null
@@ -0,0 +1,18 @@
+<!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
diff --git a/setup/main.js b/setup/main.js
new file mode 100644 (file)
index 0000000..2e1306f
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/setup/renderer.js b/setup/renderer.js
new file mode 100644 (file)
index 0000000..f24823a
--- /dev/null
@@ -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){
+    $('<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
diff --git a/setup/setup.css b/setup/setup.css
new file mode 100644 (file)
index 0000000..2c518bb
--- /dev/null
@@ -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 (file)
index 0000000..7d39ed2
--- /dev/null
@@ -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 (file)
index 0000000..f9c8df0
--- /dev/null
@@ -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 (file)
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