aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md175
1 files changed, 168 insertions, 7 deletions
diff --git a/README.md b/README.md
index 68894c3..97812f1 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,174 @@
+<div align="center">
+
+ ![logo](./assets/logo.png)
+
+*(package it!)*
+
+</div>
+
+# What is this?
+pkgit is an unconventional package manager designed to compile & install packages directly from their git repository.
+
+> ***[DISCLAIMER]***
+>
+> Due to the nature of pkgit, you are solely responsible for vetting the repos that you add to your system.
+>
+> Use at your own risk.
+
# Compile pkgit
Enter the project directory, and follow one of the following procedures.
-## Using Muon
+
+## Using Make
```
-muon setup build
-muon build build
+make
```
-## Using Meson
+
+## Using bldit
```
-meson setup build
-ninja -C build
+./bldit
```
-Both methods will put the executable for pkgit into the `build` directory.
+Both methods will create an executable in the root directory of the project.
+
+# Install pkgit
+After compiling, run the following with root privilages:
+```
+make install
+```
+
+# Usage
+## Installing Packages
+### Basic install
+Assuming you have already added its respective repo, you can install a package by specifying its name:
+```
+pkgit install [pkg_name]
+```
+Or you can use the short command:
+```
+pkgit i [pkg_name]
+```
+
+If you want to specify a version other than the latest, you can use `--tag:` or `-t:`:
+```
+pkgit install [pkg_name] --tag:[tag]
+```
+
+### Repo install
+If you haven't added the package's repository yet, or you just want to be specific, you can install the package using its git URL:
+```
+pkgit install [url.git]
+```
+
+Installing specific versions works the same as with the package name:
+```
+pkgit install [url.git] --tag:[tag]
+```
+
+### List install
+If you have multiple packages you want to install at once, you have a couple options.
+1. The one-liner:
+```
+pkgit install [pkg1Name] [pkg2Name] --tag:[tag] [url1.git] [url2.git] --tag:[tag]
+```
+2. The package list:
+ - Create a file with all the packages you want to install. The following is that file's syntax:
+ ```
+ [pkg_name]
+ [pkg_name] [tag]
+ [url.git]
+ [url.git] [tag]
+ ```
+ - Run the install command with `--list:` or `-l:`:
+ ```
+ pkgit install --list:[filename]
+ ```
+
+## Removal
+### Packages
+Removing (uninstalling) a package is as simple as it seems:
+```
+pkgit remove [pkg_name]
+```
+Or the short command:
+```
+pkgit r [pkg_name]
+```
+
+### Repositories
+Removing a repository is also relatively simple. Run the following command:
+```
+pkgit remove --repo:[pkg_name]
+```
+It will then prompt you with every URL in your repo that matches this package's name. Select the index of the one you want to remove.
+
+## Dependency Management
+As it is, pkgit is capable of dependency management, but you will likely have to determine the dependency URLs for each package you install (`/etc/pkgit/deps/[pkg-name].pkgdeps`). There's not a universal way to check for dependencies without using an existing package manager (unless the repo you're installing has a pkgdeps file).
+
+### [USER]: Creating a .pkgdeps file
+Thankfully, this is a very simple process.
+
+For each dependency, all you need to do in the .pkgdeps file is paste the dependency's remote git URL in its own line.
+
+Here's an example for `/etc/pkgit/deps/mush.pkgdeps`:
+```
+https://github.com/mpv-player/mpv
+https://github.com/yt-dlp/yt-dlp
+https://github.com/FFmpeg/FFmpeg
+https://github.com/curl/curl
+https://github.com/quodlibet/mutagen
+```
+
+That's it! pkgit will read from this file and resolve these dependencies automatically.
+
+### [DEVELOPER]: Pkgdeps in your package
+If you want your own package's dependencies to be resolved in pkgit, you can create a `pkgdeps` file in the root directory of your project's git repo.
+
+Do not name it anything other than `pkgdeps`, or pkgit will not find the file.
+
+The syntax displayed above applies to this file.
+
+> [!WARNING]
+> Recursive dependency management does NOT work in pkgit, so you may want to list your dependencies accordingly.
+
+## Custom Compile Instructions - bldit
+The bldit file is a very basic shell script, and is meant exclusively to COMPILE the program.
+
+NOT to install the program.
+
+Creating a custom bldit file is useful for those comfortable with going through compile steps manually.
+
+The file is stored in `/etc/pkgit/bldit/` and is named after the package exactly (all lowercase).
+
+It is also a very simple process to create a bldit file. A great example of a bldit file
+is right here in the pkgit repository:
+```
+make
+```
+Basically, this contains the steps to compile the program.
+
+### [USER]: Creating a bldit file
+If you wanted to create your own custom bldit file for pkgit,
+you would make a file: `/etc/pkgit/bldit/pkgit` and create your own bldit script in there.
+
+### [DEVELOPER]: Bldit in your package
+If your package doesn't build correctly using pkgit, you can create a `bldit` file in the root directory of your project's repo.
+
+Do not name it anything other than `bldit`, or pkgit will not find the file.
+
+The syntax displayed above applies to this file.
+
+## Custom Repositories
+A custom repository is as simple to create as a `pkgdeps` file.
+
+All you need is URLs separated by new lines. Each URL must correspond to a remote git repository of a package.
+
+The file name doesn't matter in this case, because you will add this repository by running:
+`pkgit a [filename]`
+
+You can also add repositories from a URL by running:
+`pkgit a [URL]`
+> [!NOTE]
+> This only works if the URL leads to the RAW file.
+
+From here, pkgit will add all the URLs into its own local repository in `/usr/pkgit/repos/repos`.
+
+Because of this simplistic format, you can easily create and share repositories on your own, or using existing larger repos like the AUR and GURU repos.