https://github.com/majewsky/art
Builds Arch Linux package repositories.
https://github.com/majewsky/art
Last synced: 6 days ago
JSON representation
Builds Arch Linux package repositories.
- Host: GitHub
- URL: https://github.com/majewsky/art
- Owner: majewsky
- License: gpl-3.0
- Created: 2017-08-22T13:37:26.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-09-24T14:00:53.000Z (over 3 years ago)
- Last Synced: 2025-04-14T16:00:17.812Z (2 months ago)
- Language: Go
- Homepage:
- Size: 94.7 KB
- Stars: 7
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ART - the Arch Repository building Tool
This is ART. Please do not throw it away. :)
ART builds a package repository for Arch Linux. It ties together the standard tools (`makepkg`, `repo-add` and
`repo-remove`) into a workflow that is quicker and more robust than when you just glue these tools together with
Makefiles or shell scripts.## Installation
```bash
$ make && make install
```## Usage
Invoke as `art`, without any arguments. ART expects a configuration file `./art.toml` in the current working directory,
like this one:```toml
[[source]]
path = "/path/to/source/directory"[[source]]
path = "/path/to/another/directory"[target]
path = "/path/to/output"
name = "my-packages"
```For each source in this configuration file, the following globs will be expanded to find packages to build:
* `$SOURCE_PATH/*/PKGBUILD` will be built with [makepkg(8)](https://www.archlinux.org/pacman/makepkg.8.html).
* `$SOURCE_PATH/*.PKGBUILD` will be built with [makepkg(8)](https://www.archlinux.org/pacman/makepkg.8.html) -p.
* `$SOURCE_PATH/*.pkg.toml` will be built with [holo-build(8)](https://github.com/holocm/holo-build).Note that directories will not be traversed any deeper than that. For example, any PKGBUILD file must be in a direct
subdirectory of the source path specified in the configuration file.The packages thus produced will be stored in the `target.path`. The `target.name` defines the file name of the
repository metadata archive. In the example above, it will be at `/path/to/output/my-packages.db.tar.xz`, so Pacman
would find it with the following configuration snippet:```
[my-packages]
Server = file:///path/to/output
```ART keeps a cache file (`.art-cache`) in its current working directory to speed up incremental rebuilds.