This commit adds the new `image-builder` binary. This binary is meant to build images from the CLI without the need to setup a daemon. The main use-case is CI/CD and admins running this in scripts or ad-hoc. The CLI should be pleasant to use. This first commit adds the `list-images` command which is a thin wrapper around functionality from the `osbuild/images` library. It will list all buildable images by default and can be trimmed down further via `--filter` which supports the filtering from the `images` library, see https://github.com/osbuild/images/pull/1015 It also supports `--output` which will output the result in the given format. Currently "text" and "json" are supported. Note that this will not work on it's own yet, it will need an installed image-builder to get the repositories. This will need to get fixed via either: 1. a dependency package for `ibuilder` that carries all the repos 2. a shared repo that contains the repos 3. using go:embed to get them (see images#1038)
21 lines
636 B
Go
21 lines
636 B
Go
package main
|
|
|
|
import (
|
|
"github.com/osbuild/images/pkg/reporegistry"
|
|
)
|
|
|
|
// XXX: copied from "composer", should be exported there so
|
|
// that we keep this in sync
|
|
// XXX2: means we need to depend on osbuild-composer-common or a new rpm
|
|
// that provides the relevant packages *or* we use go:embed (cf images#1038)
|
|
var repositoryConfigs = []string{
|
|
"/etc/osbuild-composer",
|
|
"/usr/share/osbuild-composer",
|
|
}
|
|
|
|
var newRepoRegistry = func() (*reporegistry.RepoRegistry, error) {
|
|
// TODO: add a extraReposPaths here so that users can do
|
|
// "ibuilder --repositories ..." to add a custom path(s)
|
|
|
|
return reporegistry.New(repositoryConfigs)
|
|
}
|