ips/pkg6repo
2025-07-26 11:52:42 +02:00
..
src Remove TESTING.md, fix CLI argument naming (--repo-version), enhance transaction publisher handling, and improve manifest storage logic. 2025-07-26 11:52:42 +02:00
.gitignore merging all ips packages into one repo 2021-03-21 14:12:03 -03:00
Cargo.lock merging all ips packages into one repo 2021-03-21 14:12:03 -03:00
Cargo.toml Add repository module and update dependencies 2025-07-21 22:02:05 +02:00
LICENSE merging all ips packages into one repo 2021-03-21 14:12:03 -03:00
README.md Add repository module and update dependencies 2025-07-21 22:02:05 +02:00

pkg6repo

pkg6repo is a Rust implementation of the Image Packaging System (IPS) repository management utility. It is designed to replace the pkgrepo command from the original IPS implementation.

Installation

To build and install pkg6repo, you need to have Rust and Cargo installed. Then, you can build the project using:

cargo build --release

The binary will be available at target/release/pkg6repo.

Usage

pkg6repo provides several subcommands for managing package repositories:

Create a Repository

Create a new package repository:

pkg6repo create /path/to/repository

You can specify the repository version (default is 4):

pkg6repo create --version 4 /path/to/repository

Add Publishers

Add publishers to a repository:

pkg6repo add-publisher -s /path/to/repository example.com

Remove Publishers

Remove publishers from a repository:

pkg6repo remove-publisher -s /path/to/repository example.com

You can perform a dry run to see what would be removed without actually removing anything:

pkg6repo remove-publisher -n -s /path/to/repository example.com

Get Repository Properties

Get repository properties:

pkg6repo get -s /path/to/repository

You can specify specific properties to get:

pkg6repo get -s /path/to/repository publisher/prefix

Set Repository Properties

Set repository properties:

pkg6repo set -s /path/to/repository publisher/prefix=example.com

You can set publisher-specific properties:

pkg6repo set -s /path/to/repository -p example.com repository/origins=http://example.com/repository

Display Repository Information

Display information about a repository:

pkg6repo info -s /path/to/repository

List Packages

List packages in a repository:

pkg6repo list -s /path/to/repository

You can filter by publisher:

pkg6repo list -s /path/to/repository -p example.com

You can also filter by package pattern:

pkg6repo list -s /path/to/repository example/package

Show Package Contents

Show contents of packages in a repository:

pkg6repo contents -s /path/to/repository

You can filter by package pattern:

pkg6repo contents -s /path/to/repository example/package

You can also filter by action type:

pkg6repo contents -s /path/to/repository -t file

Rebuild Repository Metadata

Rebuild repository metadata:

pkg6repo rebuild -s /path/to/repository

You can skip catalog or index rebuilding:

pkg6repo rebuild -s /path/to/repository --no-catalog
pkg6repo rebuild -s /path/to/repository --no-index

Refresh Repository Metadata

Refresh repository metadata:

pkg6repo refresh -s /path/to/repository

You can skip catalog or index refreshing:

pkg6repo refresh -s /path/to/repository --no-catalog
pkg6repo refresh -s /path/to/repository --no-index

License

This project is licensed under the same license as the original IPS implementation.