aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 0b7f081466e7360cad04b6f4f92a96f22f3a5dfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# kiss

Tiny and straightforward package manager for KISS written in POSIX `sh`.

- Only 600~ lines of POSIX `sh` (*excluding blank lines and comments*).
- Runtime dependency detection.
- Incremental package installation.
- Fast dependency solver.
- File conflict detection.
- Package alternatives system.
- Binary stripping.
- `shellcheck` compliant.


## `kiss` Guidestones

Read: https://k1ss.org/guidestones.txt

## Usage

```sh
-> kiss [a|b|c|i|l|r|s|u|v] [pkg] [pkg] [pkg]
-> alternatives: List and swap to alternatives
-> build:        Build a package
-> checksum:     Generate checksums
-> install:      Install a package
-> list:         List installed packages
-> remove:       Remove a package
-> search:       Search for a package
-> update:       Check for updates
-> version:      Package manager version
```

## Index

<!-- vim-markdown-toc GFM -->

* [Package format](#package-format)
* [Extending the package manager](#extending-the-package-manager)

<!-- vim-markdown-toc -->


## Package format

See: <https://k1ss.org/package-system>


## Extending the package manager

The `contrib` directory contains a set of simple scripts to extend the package manager. These are just simple and stupid automations which parse the package format.

- `kiss-cargo-urlgen`: Generate sources for rust packages.
- `kiss-chbuild`: Spawn a throwaway chroot.
- `kiss-chroot`: Enter a KISS `chroot`.
- `kiss-depends-finder`: Find missing dependencies by parsing 'ldd'.
- `kiss-depends`: Display a package's dependencies.
- `kiss-export`: Turn an installed package into a KISS tarball.
- `kiss-fork`: Copy a package's repository files into the current directory.
- `kiss-link`: Link a repository file to another repository.
- `kiss-manifest-tree`: Display all files as tree owned by a package.
- `kiss-manifest`: Display all files owned by a package.
- `kiss-maintainer`: Display the package maintainers.
- `kiss-new`: Create a boilerplate package.
- `kiss-orphans`: List orphaned packages.
- `kiss-outdated`: List outdated packages based on Repology versions.
- `kiss-owns`: Check which package owns a file.
- `kiss-repodepends`: Display a package's original dependencies.
- `kiss-reset`: Reset the system to the base.
- `kiss-revdepends`: Display packages which depend on package.
- `kiss-size`: Show the size on disk for an installed package.