diff options
| -rw-r--r-- | .eslintrc.js | 21 | ||||
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | .travis.yml | 4 | ||||
| -rw-r--r-- | install.js | 4 | ||||
| -rw-r--r-- | pkg93.js | 88 | 
5 files changed, 66 insertions, 53 deletions
| diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..585551a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,21 @@ +module.exports = { +  "env": { +    "browser": true, +    "es6": true +  }, +  "extends": "eslint:recommended", +  "rules": { +    "indent": ["error", 2], +    "linebreak-style": ["error", "unix"], +    "quotes": ["error", "double", {"allowTemplateLiterals": true}], +    "semi": ["error", "always"], +    "no-console": 0 +  }, +  "parserOptions": { +    "ecmaVersion": 2017 +  }, +  globals: { +    "$log": function(a){}, +    "le": {apps: {}} +  } +};
\ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae58223 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# eslint is saved here, don't commit plz +node_modules/
\ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e8f89db --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: "node" +install: npm install eslint --no-save +script: ./node_modules/.bin/eslint .
\ No newline at end of file @@ -8,6 +8,6 @@ var _main = `var interval = setInterval(function () {    } catch (err) {      console.error(err);    } -}, 5000);` +}, 5000);`;  localStorage["boot/pkg93.js"] = _main; -eval(_main); +eval(_main); // jshint ignore:line
\ No newline at end of file @@ -1,21 +1,21 @@  async function wrap(f) { -  var originalPrompt = this.cli.prompt.innerHTML -  var originalOnenter = this.cli.onenter +  var originalPrompt = this.cli.prompt.innerHTML; +  var originalOnenter = this.cli.onenter;    try  { -    this.cli.prompt.innerHTML = '' -    this.cli.onenter = l => false -    var lastLog = $log('') +    this.cli.prompt.innerHTML = ""; +    this.cli.onenter = () => false; +    var lastLog = $log("");      await f({ -        log: (...args) => { -            var newLog = $log(...args) -            newLog.parentElement.insertBefore(newLog, lastLog.nextSibling) -            lastLog = newLog -        }, -        arg: this.arg -      }) +      log: (...args) => { +        var newLog = $log(...args); +        newLog.parentElement.insertBefore(newLog, lastLog.nextSibling); +        lastLog = newLog; +      }, +      arg: this.arg +    });    } finally { -    this.cli.prompt.innerHTML = originalPrompt -    this.cli.onenter = originalOnenter +    this.cli.prompt.innerHTML = originalPrompt; +    this.cli.onenter = originalOnenter;    }  } @@ -24,11 +24,11 @@ console.log("[pkg93] Injecting packages...");  try {    if (localStorage[".pkg93/config.json"] === undefined) {      console.log("[pkg93] You seem new. Creating config..."); -    localStorage[".pkg93/config.json"] = '{"repos": ["//codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}'; +    localStorage[".pkg93/config.json"] = `{"repos": ["//codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}`;    }    var config = JSON.parse(localStorage[".pkg93/config.json"]);    for (let pkg of config.installed) { -    eval(localStorage[".pkg93/packages/" + pkg + ".js"]); +    eval(localStorage[".pkg93/packages/" + pkg + ".js"]); // jshint ignore:line    }  } catch (err) {    console.error("[pkg93] Couldn't load package information."); @@ -45,14 +45,14 @@ var pkg93 = {      }    },    pull: async function(cli) { -    cli = cli || {log: (i) => {$log(i)}}; +    cli = cli || {log: (i) => {$log(i);}};      var config = pkg93.getConfig();      cli.log("<b><span style='color:#ff0'>WARN</span></b> Windows93 may lag while getting packages.\n      This is a normal thing.");      config.pkglist = [];      for (let source of config.repos) {        cli.log("<b><span style='color:#f0f'>GET</span></b>  " + source);        try { -        var json = await (await (fetch(source + "/repo.json"))).json() +        var json = await (await (fetch(source + "/repo.json"))).json();          cli.log("<b><span style='color:#0f0'>NAME</span></b> " + json.name);          cli.log("<b><span style='color:#0f0'>MSG</span></b>  " + json.msg);          for (let item of json.packages) { @@ -65,26 +65,12 @@ var pkg93 = {          }        } catch (err) {          cli.log("<b><span style='color:#f00'>ERR</span></b>  " + err.message); -        if (request.status !== 200) { -          cli.log("<b><span style='color:#f00'>ERR</span></b>  Got HTTP Status Code " + request.status + " from the server."); -          if (request.status === 404) { -            cli.log("<b>    </b> Are you trying to load a non-existant repo?"); -          } -        } -        if (!request.responseText.toLowerCase().includes("<html>")) { -          cli.log("<b><span style='color:#00f'>INFO</span></b> Response is HTML, not displaying..."); -        } else { -          cli.log(request.responseText); -        } -        if (location.protocol == "https:") { -          cli.log("<b><span style='color:#ff0'>WARN</span></b> pkg93 doesn't work on HTTPS connections.\n     Click <a style='color: #00f;' href='http://windows93.net'>here</a> to load Windows93 over HTTP."); -        }        }      }      localStorage[".pkg93/config.json"] = JSON.stringify(config);    },    get: async function(pkg, cli) { -    cli = cli || {log: (i) => {$log(i)}}; +    cli = cli || {log: (i) => {$log(i);}};      var config = pkg93.getConfig();      cli.log("<b><span style='color:#f0f'>SRCH</span></b> " + pkg);      var index = config.pkglist.findIndex(function(string) { @@ -98,13 +84,13 @@ var pkg93 = {        var pkgname = config.pkglist[index].split("@")[0];        var pkgsource = config.pkglist[index].split("@")[1];        try { -        var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json() +        var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json();          localStorage[".pkg93/packages/" + pkgname + ".json"] = JSON.stringify(json);          if (json.dependencies) {            for (let pkg of json.dependencies) {              try {                cli.log("<b><span style='color:#f0f'>DPND</span></b> Getting dependency \"" + pkg + "\""); -              output = await pkg93.get(pkg, cli); +              var output = await pkg93.get(pkg, cli);                if (!output) {                  throw new Error("Dependency \"" + pkg + "\" failed to install. Current package may not work!");                } @@ -113,11 +99,11 @@ var pkg93 = {              }            }          } -        var script = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.inject))).text() +        var script = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.inject))).text();          localStorage[".pkg93/packages/" + pkgname + ".js"] = script;          eval(script);          if (json.uninstall) { -          var uninst = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.uninstall))).text() +          var uninst = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.uninstall))).text();            localStorage[".pkg93/packages/" + pkgname + ".rm.js"] = uninst;          }          cli.log("<b><span style='color:#0f0'>OK</span></b>   Injected package!"); @@ -133,18 +119,18 @@ var pkg93 = {      }    },    rm: function(pkg, cli) { -    cli = cli || {log: (i) => {$log(i)}}; +    cli = cli || {log: (i) => {$log(i);}};      var config = pkg93.getConfig();      var index = config.installed.indexOf(pkg);      if (index < 0) {        cli.log("<b><span style='color:#f00'>ERR</span></b>  Not found.");        return false; -    } else if (!!localStorage[".pkg93/packages/" + pkg + ".rm.js"]) { +    } else if (localStorage[".pkg93/packages/" + pkg + ".rm.js"]) {        eval(localStorage[".pkg93/packages/" + pkg + ".rm.js"]); // Typing eval makes me feel dirty.        delete le._apps[config.installed[index]]; -      delete localStorage[".pkg93/packages/" + pkg + ".rm.js"] -      delete localStorage[".pkg93/packages/" + pkg + ".js"] -      delete localStorage[".pkg93/packages/" + pkg + ".json"] +      delete localStorage[".pkg93/packages/" + pkg + ".rm.js"]; +      delete localStorage[".pkg93/packages/" + pkg + ".js"]; +      delete localStorage[".pkg93/packages/" + pkg + ".json"];        config.installed.splice(index, 1);        cli.log("<b><span style='color:#0f0'>OK</span></b>   Removed!");      } else { @@ -181,7 +167,7 @@ var pkg93 = {          } else {            var pkgname = config.pkglist[index].split("@")[0];            var pkgsource = config.pkglist[index].split("@")[1]; -          var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json() +          var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json();            localStorage[".pkg93/packages/" + pkgname + ".json"] = JSON.stringify(json); // save it for later            return json;          } @@ -196,7 +182,7 @@ var pkg93 = {      arg: {arguments:[]}    },    version: "v2.0.0" -} +};  async function _pkg93execdonotcallplsusetheapi(cli) {    pkg93.version = "v2.0.0"; @@ -224,7 +210,7 @@ pkg93 <span style="color:#0f0">rm</span> <span style="color:#77f">kebab</span>  If you find my software useful, consider donating <a style="color: #00f;" href="http://codinggamerhd.com/donate.html">here</a>.  `;    if (localStorage[".pkg93/config.json"] === undefined) { -    localStorage[".pkg93/config.json"] = '{"repos": ["//codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}'; +    localStorage[".pkg93/config.json"] = "{\"repos\": [\"//codinggamerhd.com/main-repo\"], \"installed\": [], \"pkglist\": []}";    }    if (localStorage[".pkg93/packages/"] === undefined) {      localStorage[".pkg93/packages/"] = ""; @@ -281,7 +267,7 @@ If you find my software useful, consider donating <a style="color: #00f;" href="      } else if (args[1] == "installed") {        cli.log(config.installed.join("\n"));      } else if (args[1] == "repos") { -      lerepos = ""; +      var lerepos = "";        for (let index in config.repos) {          lerepos += "[" + index + "] " + config.repos[index] + "<br>";        } @@ -295,10 +281,10 @@ If you find my software useful, consider donating <a style="color: #00f;" href="      } else {        var pkgInfo = await pkg93.pkgInfo(args[1]);        if (!pkgInfo) { -        cli.log("<b><span style='color:#f00'>ERR</span></b>  Either the package doesn't exist, or an error occoured.") +        cli.log("<b><span style='color:#f00'>ERR</span></b>  Either the package doesn't exist, or an error occoured.");        } else { -        depends = pkgInfo.dependencies ? pkgInfo.dependencies.join(" , ") : "<i><span style='color:#444'>None!</span></i>"; -        description = pkgInfo.description ? pkgInfo.description : "<i><span style='color:#444'>None!</span></i>"; +        var depends = pkgInfo.dependencies ? pkgInfo.dependencies.join(" , ") : "<i><span style='color:#444'>None!</span></i>"; +        var description = pkgInfo.description ? pkgInfo.description : "<i><span style='color:#444'>None!</span></i>";          console.log(pkgInfo);          cli.log(`<b><u>${pkgInfo.name}</u></b>  Description: ${description} @@ -310,7 +296,7 @@ Dependencies: ${depends}`);    } else if (args[0] == "wtf") {      // for teh lulz      new Audio("/c/sys/sounds/QUACK.ogg").play(); -    wtf = ["mudkipz", "pkg93", "memes", "linux", "javascript", "git", "cpu", "windows93", "discord", "kirb", "apt93", "delays", /* those last 2 go well together */ "trash", "kernel panic", "bash", "package manager", "recusion"]; +    var wtf = ["mudkipz", "pkg93", "memes", "linux", "javascript", "git", "cpu", "windows93", "discord", "kirb", "apt93", "delays", /* those last 2 go well together */ "trash", "kernel panic", "bash", "package manager", "recusion"];      cli.log("<b><span style='color:#0f0'>WTF?</span></b> " + wtf[Math.floor(Math.random() * wtf.length)] + " + " + wtf[Math.floor(Math.random() * wtf.length)] + " = " + wtf[Math.floor(Math.random() * wtf.length)]);    } else {      cli.log("<b><span style='color:#f00'>ERR</span></b>  Invalid command. Type \"pkg93\" without any arguments for help."); @@ -318,7 +304,7 @@ Dependencies: ${depends}`);  }  le._apps.pkg93 = { -  exec: function() { wrap.call(this, _pkg93execdonotcallplsusetheapi) }, +  exec: function() { wrap.call(this, _pkg93execdonotcallplsusetheapi); },    icon: "//cdn.rawgit.com/1024x2/pkg93/70039c02/pkg.png",    terminal: true,    hascli: true, | 
