diff options
-rw-r--r-- | README.md | 9 | ||||
-rw-r--r-- | pkg93.js | 13 |
2 files changed, 19 insertions, 3 deletions
@@ -47,15 +47,20 @@ example-repo Firstly, you want to make a new folder called the name of the package. Then, you want to make a file called package.json in the folder. In it, there should be 4 keys. -- `name`: **Must be the same as the folder name and command name!** +- `name`: **Must be the same as the folder name and command name!** (unless you've provided a uninstaller) - `inject`: It should be the name of the injection script. - `uninstall`: Optional, It should be the name of the uninstaller script, if it doesn't exist pkg93 will simply delete the command for you. +- `dependencies`: Optional, Packages this package depends on. These will be automatically installed. Here's a example: ```json { "name": "examplepkg", "inject": "installer.js", - "uninstall": "optionaluninstaller.js" + "uninstall": "optionaluninstaller.js", + "dependencies": [ + "anoptionaldependency", + "anotherone" + ] } ``` And the directory structure: @@ -86,6 +86,17 @@ var pkg93 = { request.send(null); var json = JSON.parse(request.responseText); localStorage[".pkg93/packages/" + pkgname + ".json"] = request.responseText; + if (json.dependencies) { + json.dependencies.forEach(function (pkg) { + try { + $log("<b><span style='color:#f0f'>DPND</span></b> Getting dependency \"" + pkg + "\""); + output = pkg93.get(pkg); + if (output) {throw new Error("Dependency \"" + pkg + "\" failed to install. Current package may not work!");} + } catch (err) { + $log("<b><span style='color:#f00'>ERR</span></b> " + err.message); + } + }); + } request.open('GET', pkgsource + "/" + pkgname + "/" + json.inject, false); request.send(null); localStorage[".pkg93/packages/" + pkgname + ".js"] = request.responseText; @@ -148,7 +159,7 @@ le._apps.pkg93 = { exec: function() { const protected = ["3d","acid","acidbox","ansi","anthology","arena93","bananamp","base64","bytebeat","calc","castlegafa","catex","cd","clear","clearhist","clippy","code","contact","crazy","defrag","dmg","do a barrel roll","doctor","download","find","font","format","fullscreen","fx","gameoflife","glitch","global thermonuclear war","gravity","hampster","hello","help","hexed","history","hl3","hydra","ie6","iframe","img","info","js","key","killall","layer","lenna","lisa","ls","manifesto","marburg","messenger","mines","necronomicoin","pd","piskel","pkg93","pony","potato","progressquest","pwd","reboot","robby","rotate","shutdown","skifree","solitude","speech","starwars","superplayer","takethis","terminal","textarea","tree","trollbox","vega","virtualpc","vm","wat","whatif","whois","win","zkype"]; const args = this.arg.arguments; - const version = "v1.1.2"; + const version = "v1.2.0"; const help = `<b>pkg93 ${version}</b> <b>Usage:</b> pkg93 [command] |