aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md61
-rw-r--r--main-repo/helloworld/helloworld.js8
-rw-r--r--main-repo/helloworld/package.json5
-rw-r--r--main-repo/helloworld/uninstall.js1
-rw-r--r--main-repo/pkg93/package.json5
l---------main-repo/pkg93/pkg93.js1
-rw-r--r--main-repo/repo.json8
-rw-r--r--main-repo/wget93/package.json6
-rw-r--r--main-repo/wget93/unwget93.js3
-rw-r--r--main-repo/wget93/wget93.js52
-rw-r--r--pkg93.js (renamed from index.js)22
11 files changed, 164 insertions, 8 deletions
diff --git a/README.md b/README.md
index 09691dd..89a9d76 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,61 @@
# pkg93
-soon
+
+## Installation
+Unfinished!
+
+## Making a repository
+Firstly, make sure that [CORS is enabled on your webserver](https://enable-cors.org/server.html).
+If it isn't on, your users will be unable to download packages!
+Secondly you need to create a repo.json in the folder where you want your repository to be in.
+Here's an example:
+```json
+{
+ "name": "Example of a repo.json",
+ "motd": "This is an example repo.json",
+ "packages": [
+ "examplepkg1",
+ "examplepkg2",
+ "examplepkg3"
+ ]
+}
+```
+Finally put all the packages in seperate folders named after the package.
+The end result should look like this:
+```
+example-repo
+├── repo.json
+├── examplepkg1
+│ │ (package files go here)
+│   └── package.json
+├── examplepkg2
+│ │ (package files go here)
+│   └── package.json
+└── examplepkg3
+│ │ (package files go here)
+    └── package.json
+```
+
+## Making a package
+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!**
+- `"version"`: An array of 3 numbers, 1st number is major, 2nd number is minor, 3rd number is patch.
+- `"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.
+Here's a example:
+```json
+{
+ "name": "examplepkg",
+ "version": [1, 3, 7],
+ "inject": "installer.js",
+ "uninstall": "mypointlessuninstaller.js"
+}
+```
+And the directory structure:
+```
+examplepkg
+├── package.json
+├── installer.js
+└── mypointlessuninstaller.js
+```
diff --git a/main-repo/helloworld/helloworld.js b/main-repo/helloworld/helloworld.js
new file mode 100644
index 0000000..40cd8bd
--- /dev/null
+++ b/main-repo/helloworld/helloworld.js
@@ -0,0 +1,8 @@
+le._apps.helloworld = {
+ exec: function () {
+ $log("Hello, World!");
+ },
+ icon: "/c/sys/skins/w93/apps/terminal.png",
+ terminal: true,
+ hascli: true
+}
diff --git a/main-repo/helloworld/package.json b/main-repo/helloworld/package.json
new file mode 100644
index 0000000..f5c7625
--- /dev/null
+++ b/main-repo/helloworld/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "helloworld",
+ "version": [1, 0, 0],
+ "inject": "helloworld.js"
+}
diff --git a/main-repo/helloworld/uninstall.js b/main-repo/helloworld/uninstall.js
new file mode 100644
index 0000000..43bc525
--- /dev/null
+++ b/main-repo/helloworld/uninstall.js
@@ -0,0 +1 @@
+le._apps.helloworld = null;
diff --git a/main-repo/pkg93/package.json b/main-repo/pkg93/package.json
new file mode 100644
index 0000000..dbe1030
--- /dev/null
+++ b/main-repo/pkg93/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "pkg93",
+ "version": [0, 1, 0],
+ "inject": "pkg93.js"
+}
diff --git a/main-repo/pkg93/pkg93.js b/main-repo/pkg93/pkg93.js
new file mode 120000
index 0000000..58d2fb8
--- /dev/null
+++ b/main-repo/pkg93/pkg93.js
@@ -0,0 +1 @@
+../../pkg93.js \ No newline at end of file
diff --git a/main-repo/repo.json b/main-repo/repo.json
new file mode 100644
index 0000000..c066956
--- /dev/null
+++ b/main-repo/repo.json
@@ -0,0 +1,8 @@
+{
+ "name": "pkg93 Default Repo",
+ "motd": "Hello, World!",
+ "packages": [
+ "wget93",
+ "helloworld"
+ ]
+}
diff --git a/main-repo/wget93/package.json b/main-repo/wget93/package.json
new file mode 100644
index 0000000..d96a422
--- /dev/null
+++ b/main-repo/wget93/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "wget93",
+ "version": [0, 1, 0],
+ "inject": "wget93.js",
+ "uninstall": "unwget93.js"
+}
diff --git a/main-repo/wget93/unwget93.js b/main-repo/wget93/unwget93.js
new file mode 100644
index 0000000..11e0e00
--- /dev/null
+++ b/main-repo/wget93/unwget93.js
@@ -0,0 +1,3 @@
+$log.succes("Uninstalling wget93...");
+le._apps.wget93 = null;
+$log.succes("✔️ Uninstalled wget93."); \ No newline at end of file
diff --git a/main-repo/wget93/wget93.js b/main-repo/wget93/wget93.js
new file mode 100644
index 0000000..8734730
--- /dev/null
+++ b/main-repo/wget93/wget93.js
@@ -0,0 +1,52 @@
+le._apps.wget93 = {
+ exec: function()
+ {
+ try {
+ if (this.arg.arguments.length == 0) {
+ $log(`wget93 v0.1.0 by 1024x2
+wget93 [url] [output]
+example: wget93 http://tobefa.ir/youhavetoha.ve /a/veryhightounderstand/rickandmor.ty
+
+NOTE: Downloading binary files doesn't work, only text.`);
+ } else if (this.arg.arguments.length != 2) {
+ throw new Error("missing url/destination");
+ } else {
+ $log.info("Downloading...");
+ var url = this.arg.arguments[0];
+ if (this.arg.arguments[1].startsWith("/a/")) {
+ var output = this.arg.arguments[1].substring(3);
+ } else {
+ var output = this.arg.arguments[1];
+ }
+ var request = new XMLHttpRequest();
+ request.addEventListener("load", function () {
+ if (request.status != 200) {
+ $log.error("❌ wget93: " + request.statusText);
+ } else {
+ $log.succes("✔️ Downloaded!");
+ $log.info("Saving...");
+ $store.set(output, request.responseText);
+ $log.succes("✔️ Saved!");
+ $explorer.refresh();
+ }
+ });
+ request.addEventListener("error", function () {
+ $log.error("❌ wget93: couldn't download file");
+ if (!!window.chrome) {
+ $log.info("This may be caused by \"Allow-Control-Allow-Origin\" garbage. <a target=\"_blank\" href=\"https://chrome.google.com/webstore/detail/nlfbmbojpeacfghkpbjhddihlkkiljbi\">Click here to download an extension that fixes this.</a>");
+ } else if (navigator.userAgent.indexOf("Firefox") > 0) {
+ $log.info("This may be caused by \"Allow-Control-Allow-Origin\" garbage. <a target=\"_blank\" href=\"https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/\">Click here to download an addon that fixes this.</a>");
+ } else {
+ $log.info("This may be caused by \"Allow-Control-Allow-Origin\" garbage.");
+ }
+ });
+ request.open("GET", url);
+ request.send();
+ }
+ } catch(error) {
+ $log.error("❌ wget93: " + error.message);
+ }
+ },
+ hascli: true,
+ terminal: true
+}; \ No newline at end of file
diff --git a/index.js b/pkg93.js
index fb357e8..fd94a0e 100644
--- a/index.js
+++ b/pkg93.js
@@ -1,9 +1,10 @@
le._apps.pkg93 = {
exec: function() {
- // if ur reading this can u don't hack into my pc
- // kthx
const args = this.arg.arguments;
- const version = "le private beta";
+ const version = "v0.1.0";
+ if (localStorage[".config/pkg93.json"] == undefined) {
+ localStorage[".config/pkg93.json"] = '{"sources": [], "pkgs": [], "cache": []}';
+ }
if (args.length == 0) {
$log.info(`pkg93 ${version} help`);
$log(`Usage: pkg93 [command]
@@ -20,10 +21,17 @@ help Gets help for a command
Examples:
pkg93 get gud
pkg93 rm kebab
-pkg93 help ivefallenandicantgetup
-`);
+pkg93 help ivefallenandicantgetup`);
+ } else {
+ if (args[0] == "update") {
+ var config = JSON.parse(localStorage[".config/pkg93.json"]);
+ config.sources.forEach((value) => {
+
+ });
+ }
}
},
- icon: "/c/",
- terminal: true
+ icon: "/c/sys/skins/w93/install.png",
+ terminal: true,
+ hascli: true
}