diff --git a/README.md b/README.md index ae8eb3f..8a738e0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,98 @@ Build images from the commandline in a convenient way. +## Installation + +This project is under development right now and needs to be run via: +```console +$ go run github.com/osbuild/image-builder-cli/cmd/image-builder@main +``` +or install it into $GOPATH/bin +```console +$ go install github.com/osbuild/image-builder-cli/cmd/image-builder@main +``` + +we plan to provide rpm packages as well. + + +## Prerequisites + +Make sure to have the required `osbuild` rpms installed: +```console +$ sudo dnf install osbuild osbuild-depsolve-dnf osbuild-composer +``` +(`osbuild-composer` is only needed to get the repository definitions +and this dependency will go away soon). + +## Example + +To see the list of buildable images run: +```console +$ image-builder list-images +... +centos-9 type:qcow2 arch:x86_64 +... +rhel-10.0 type:ami arch:x86_64 +... +``` + +It is possible to filter: +```console +$ image-builder list-images --filter ami +... +centos-9 type:ami arch:x86_64 +... +rhel-8.5 type:ami arch:aarch64 +... +rhel-10.0 type:ami arch:aarch64 +``` +or be more specific +```console +$ image-builder list-images --filter "arch:x86*" --filter "distro:*centos*" +centos-9 type:ami arch:x86_64 +... +centos-9 type:qcow2 arch:x86_64 +... +``` + +The following filters are currently supported, shell-style globbing is supported: + * distro: the distro name (e.g. fedora-41) + * arch: the architecture name (e.g. x86_64) + * type: the image type name (e.g. qcow2) + * bootmode: the bootmode (legacy, uefi, hybrid) + +The output can also be switched, supported are "text", "json": +```console +$ image-builder list-images --output=json +[ + { + "distro": { + "name": "centos-9" + }, + "arch": { + "name": "aarch64" + }, + "image_type": { + "name": "ami" + } + }, +... + { + "distro": { + "name": "rhel-10.0" + }, + "arch": { + "name": "x86_64" + }, + "image_type": { + "name": "wsl" + } + } +] + +``` + + ## FAQ Q: Does this require a backend.