Add distrobox completion script

This commit is contained in:
brennenputh
2025-08-08 20:48:20 -04:00
parent 894d4ecc53
commit 6561a1d6ba

View File

@@ -0,0 +1,115 @@
set -l commands assemble create rm enter list ls stop upgrade ephemeral generate-entry version help
complete -c distrobox -f
function __fish_distrobox_list_containers
distrobox ls | tr -d ' ' | cut -d "|" -f2 | tail -n +2
end
complete -c distrobox \
-s V -l version -d "Show version"
complete -c distrobox -n "__fish_seen_subcommand_from $commands" \
-s v -l verbose -d "Show more verbosity"
complete -c distrobox -n "__fish_seen_subcommand_from $commands" \
-s h -l help -d "Show help message"
complete -c distrobox -n "__fish_seen_subcommand_from enter ephemeral list ls create rm generate-entry upgrade && not __fish_seen_subcommand_from assemble" \
-s r -l root -d "Launch podman/docker/lilipod with root privileges"
complete -c distrobox --no-files -n "not __fish_seen_subcommand_from $commands" \
-a "assemble create enter list ls stop upgrade ephemeral generate-entry version help"
complete -c distrobox -n "__fish_seen_subcommand_from assemble" \
-a "create rm"
complete -c distrobox -n "__fish_seen_subcommand_from assemble && __fish_seen_subcommand_from create rm" \
-l file -F -d "Path or URL to the distrobox manifest/ini file"
complete -c distrobox -n "__fish_seen_subcommand_from assemble && __fish_seen_subcommand_from create rm" \
-s n -l name -d "Run against a single entry in the manifest/ini file"
complete -c distrobox -n "__fish_seen_subcommand_from assemble && __fish_seen_subcommand_from create rm" \
-s r -l replace -d "Replace already existing distroboxes with matching names"
complete -c distrobox -n "__fish_seen_subcommand_from assemble && __fish_seen_subcommand_from create rm" \
-s d -l dry-run -d "Only print the container manager command generated"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s i -l image -ra "(distrobox create -C)"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s n -l name -d "Image to use for the container"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l hostname -d "Hostname for the distrobox"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s p -l pull -d "Pull the image even if it exists locally (implies --yes)"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral stop && not __fish_seen_subcommand_from assemble" \
-s Y -l yes -d "non-interactive, pull images without asking"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s c -l clone -ra "(__fish_distrobox_list_containers)" -d "Name of the distrobox container to use as base for a new container"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s H -l home -d "Select a custom HOME directory for the container"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l volume -d "Additional volumes to add to the container"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s a -l additional-flags -d "Additional flags to pass to the container manager command"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s ap -l additional-packages -d "Additional packages to install during initial container setup"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l init-hooks -d "Additional commands to execute at the end of container initialization"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l pre-init-hooks -d "Additional commands to execute at the start of container initialization"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s I -l init -d "Use init system (like systemd) inside the container."
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l nvidia -d "Try to integrate host's nVidia drivers in the guest"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l platform -d "Specify which platform to use, eg: linux/arm64"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-devsys -d "Do not share host devices and sysfs dirs from host"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-groups -d "Do not forward user's additional groups into the container"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-ipc -d "Do not share ipc namespace with host"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-netns -d "Do not share the net namespace with host"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-process -d "Do not share process namespace with host"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l unshare-all -d "Activate all the unshare flags"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-s C -l compatibility -d "Show list of compatible images"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l no-entry -d "Do not generate a container entry in the application list"
complete -c distrobox -n "__fish_seen_subcommand_from create ephemeral && not __fish_seen_subcommand_from assemble" \
-l absolutely-disable-root-password-i-am-really-positively-sure -d "when setting up a rootful distrobox, this will skip user password setup, leaving it blanK"
complete -c distrobox -n "__fish_seen_subcommand_from enter rm stop upgrade" \
--no-files -ra "(__fish_distrobox_list_containers)"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-s n -l name --no-files -ra "(__fish_distrobox_list_containers)" -d "Name for the distrobox"
complete -c distrobox -n "__fish_seen_subcommand_from enter ephemeral" \
-s "e -" -d "End arguments, execute the rest as command to execute at login"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-l clean-path -d "Reset PATH inside container to FHS standard"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-s T -l no-tty -d "Do not instantiate a tty"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-s nw -l no-workdir -d "Always start the container from container's home directory"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-s a -l additional-flags -d "Additional flags to pass to the container manager command"
complete -c distrobox -n "__fish_seen_subcommand_from enter" \
-s d -l dry-run -d "Only print the container manager command generated"
complete -c distrobox -n "__fish_seen_subcommand_from list ls" \
-l no-color -d "Disable color formatting"
complete -c distrobox -n "__fish_seen_subcommand_from rm stop upgrade generate-entry" \
-s a -l all -d "Delete all distroboxes"
complete -c distrobox -n "__fish_seen_subcommand_from rm" \
-s f -l force -d "Force deletion"
complete -c distrobox -n "__fish_seen_subcommand_from rm" \
-l rm-home -d "Remove the mounted home if it differs from the host user's one"
complete -c distrobox -n "__fish_seen_subcommand_from upgrade" \
-l running -d "Perform only for running distroboxes"
complete -c distrobox -n "__fish_seen_subcommand_from generate-entry" \
-s d -l delete -d "Delete the entry"
complete -c distrobox -n "__fish_seen_subcommand_from generate-entry" \
-s i -l icon -F -ra "(__fish_complete_path)" -d "Specify a custom icon"