id = "distrobox"
name = "Distrobox"
homepage = "https://distrobox.it/"
description = "Use any Linux distribution inside your terminal."
executables = ["distrobox"]
[dotfiles]
paths = [
"[configHome]/distrobox/distrobox.conf",
"~/.distroboxrc",
]
secret = []
[commands]
format = 1
label = "Distrobox"
description = "Create or enter a container. Unshare flags, hooks and the command to run at login are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["create"]
label = "Create a container"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-create.md"
evidence = """
distrobox create
--image/-i: image to use for the container
--name/-n: name for the distrobox
--pull/-p: pull the image even if it exists locally (implies --yes)
--yes/-Y: non-interactive, pull images without asking
--root/-r: launch podman/docker/lilipod with root privileges.
--clone/-c: name of the distrobox container to use as base for a new container
--home/-H: select a custom HOME directory for the container.
--volume: additional volumes to add to the container
--additional-packages/-ap: additional packages to install during initial container setup
--init/-I: use init system (like systemd) inside the container.
--nvidia: try to integrate host's nVidia drivers in the guest
--dry-run/-d: only print the container manager command generated
"""
[[commands.subcommand.field]]
id = "image"
label = "Image"
type = "string"
option = ["--image", "-i"]
suggestions = [{ value = "alpine", label = "Alpine" }, { value = "ubuntu:latest", label = "Ubuntu" }, { value = "fedora:latest", label = "Fedora" }]
sources = ["docs"]
[[commands.subcommand.field]]
id = "name"
label = "Container name"
type = "string"
option = ["--name", "-n"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "pull"
label = "Pull image first"
type = "boolean"
option = ["--pull", "-p"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "yes"
label = "Non-interactive"
type = "boolean"
option = ["--yes", "-Y"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "root"
label = "Rootful container"
type = "boolean"
option = ["--root", "-r"]
effect = "exec"
sources = ["docs"]
[[commands.subcommand.field]]
id = "clone"
label = "Clone container"
description = "Name of an existing distrobox to copy."
type = "string"
option = ["--clone", "-c"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "home"
label = "Custom HOME"
type = "path"
option = ["--home", "-H"]
path = { kind = "directory", role = "output" }
sources = ["docs"]
[[commands.subcommand.field]]
id = "volume"
label = "Extra volumes"
description = "host:container[:mode], one per entry."
type = "string"
option = ["--volume"]
multiple = true
sources = ["docs"]
[[commands.subcommand.field]]
id = "packages"
label = "Additional packages"
type = "string"
option = ["--additional-packages"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "init"
label = "Run an init system"
type = "boolean"
option = ["--init", "-I"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "nvidia"
label = "Integrate NVIDIA drivers"
type = "boolean"
option = ["--nvidia"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "dry_run"
label = "Print command only"
type = "boolean"
option = ["--dry-run", "-d"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "create"
label = "Create a container"
fields = ["image", "name", "pull", "yes"]
required = ["image", "name"]
[[commands.subcommand.task]]
id = "preview"
label = "Preview the command"
fields = ["image", "name", "dry_run"]
required = ["image", "name"]
set = { dry_run = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["image", "name", "pull", "yes"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["root", "clone", "home", "volume", "packages", "init", "nvidia", "dry_run"]
[[commands.subcommand]]
path = ["enter"]
label = "Enter a container"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-enter.md"
evidence = """
distrobox enter
--name/-n: name for the distrobox
--/-e: end arguments execute the rest as command to execute at login
--no-tty/-T: do not instantiate a tty (alias: -H)
--clean-path/-c: reset PATH inside the container to FHS standard
--yes/-y: non-interactive, auto-create the container if it does not exist
--root/-r: launch podman/docker/lilipod with root privileges.
--dry-run/-d: only print the container manager command generated
distrobox enter --name fedora-toolbox-35 -- bash -l
"""
[[commands.subcommand.field]]
id = "name"
label = "Container name"
type = "string"
option = ["--name", "-n"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "no_tty"
label = "No TTY"
type = "boolean"
option = ["--no-tty", "-T"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "clean_path"
label = "Reset PATH"
type = "boolean"
option = ["--clean-path", "-c"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "yes"
label = "Create if missing"
type = "boolean"
option = ["--yes", "-y"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "root"
label = "Rootful container"
type = "boolean"
option = ["--root", "-r"]
effect = "exec"
sources = ["docs"]
[[commands.subcommand.field]]
id = "dry_run"
label = "Print command only"
type = "boolean"
option = ["--dry-run", "-d"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "enter"
label = "Enter a container"
fields = ["name"]
required = ["name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["name"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["no_tty", "clean_path", "yes", "root", "dry_run"]