docs: added more specification

This commit is contained in:
Didier Slof 2023-07-16 20:06:23 +02:00
parent 0a002ab417
commit 0bbdb9219f
Signed by: didier
GPG key ID: 01E71F18AA4398E5
4 changed files with 91 additions and 0 deletions

20
docs/README.md Normal file
View file

@ -0,0 +1,20 @@
# Packager
Packager is a tool for package management.
It was built to make it easier to download and distribute packages.
## pkgr
pkgr is the main tool for the packager.
Because this tool is so feature rich, it has its own [README](./pkgr/README.md).
## bootpkg
bootpkg is a tool primariliy used to bootstrap the packager.
### Usage
```bash
bootpkg strap ./pkgr.pkg
```
This will extract the pkgfile and read the `[pkgr.bootstrap]` section to bootstrap the packager or any other package.

24
docs/pkgfile.md Normal file
View file

@ -0,0 +1,24 @@
# PKGFILE
This file is essentially a tar with the manifest in the header.
## Format
The format is as follows:
```
[PKGFILE version (1 byte)][manifest length x 256 (1 byte)][manifest length (1 byte)]
[manifest (manifest length bytes)]
[archive]
```
The file is Big Endian.
## Unpacking
To unpack a PKGFILE, you can use the following command:
```bash
pkgr unpack <pkgfile> <output>
```
## Packing
You can write your own packer, or use the following command:
```bash
pkgr pack <manifest path> <archive path> <output file>
```

28
docs/pkgr/README.md Normal file
View file

@ -0,0 +1,28 @@
# pkgr
PKGR is the main tool for the packager.
## Commands
### `pkgr install [--bin/--build] <identifier>`
This command will download a package from the repository or the uri provided and install it.
This command can also be used to update a package.
### `pkgr remove <package_name>`
This command will remove a package from the system.
### `pkgr revert <package_name>`
This command will revert a package to the previous version.
### `pkgr download <identifier> <path>`
This command will download a package from the repository or the uri provided into the specified path.
### `pkgr unpack <pkgfile> <output>`
This command will unpack a pkgfile into the specified output directory.
### `pkgr pack <manifest path> <archive path> <output file>`
This command will pack a manifest and archive into a pkgfile.
### `pkgr list [-i]`
This command will list all packages known or installed packages if `-i` is specified.
### `pkgr update [package_name]`
This command will update all packages or a specific package.

View file

@ -0,0 +1,19 @@
# Installed manifest
## Where?
The package manager will store the install manifest in:
`/var/lib/pkgr/installed/<package_name>/<version>/installed.toml`
To find the latest we'll use the `latest` symlink:
`/var/lib/pkgr/installed/<package_name>/latest/installed.toml`
```toml
install_start = "2021-01-01T00:00:00Z" # install_start is the time the pkgr started installing the package
install_end = "2021-01-01T00:00:00Z" # install_end is the time the pkgr finished installing the package
install_by = "pkgr" # install_by is the name of the package manager that installed the package
[old_versions] # This logs old versions of the package (that were installed before)
9 = "../9/pkgr.pkg"
# pkgr.* is reserved for the manifest of the package
```