1220 lines
24 KiB
Bash
1220 lines
24 KiB
Bash
# bash completion file for buildah command
|
|
#
|
|
# This script provides completion of:
|
|
# - commands and their options
|
|
# - filepaths
|
|
#
|
|
# To enable the completions either:
|
|
# - place this file in /usr/share/bash-completion/completions
|
|
# or
|
|
# - copy this file to e.g. ~/.buildah-completion.sh and add the line
|
|
# below to your .bashrc after bash completion features are loaded
|
|
# . ~/.buildah-completion.sh
|
|
#
|
|
# Configuration:
|
|
#
|
|
|
|
# __buildah_to_alternatives transforms a multiline list of strings into a single line
|
|
# string with the words separated by `|`.
|
|
# This is used to prepare arguments to __buildah_pos_first_nonflag().
|
|
__buildah_to_alternatives() {
|
|
local parts=( $1 )
|
|
local IFS='|'
|
|
echo "${parts[*]}"
|
|
}
|
|
|
|
# __buildah_to_extglob transforms a multiline list of options into an extglob pattern
|
|
# suitable for use in case statements.
|
|
__buildah_to_extglob() {
|
|
local extglob=$( __buildah_to_alternatives "$1" )
|
|
echo "@($extglob)"
|
|
}
|
|
|
|
# __buildah_pos_first_nonflag finds the position of the first word that is neither
|
|
# option nor an option's argument. If there are options that require arguments,
|
|
# you should pass a glob describing those options, e.g. "--option1|-o|--option2"
|
|
# Use this function to restrict completions to exact positions after the argument list.
|
|
__buildah_pos_first_nonflag() {
|
|
local argument_flags=$1
|
|
|
|
local counter=$((${subcommand_pos:-${command_pos}} + 1))
|
|
while [ $counter -le $cword ]; do
|
|
if [ -n "$argument_flags" ] && eval "case '${words[$counter]}' in $argument_flags) true ;; *) false ;; esac"; then
|
|
(( counter++ ))
|
|
# eat "=" in case of --option=arg syntax
|
|
[ "${words[$counter]}" = "=" ] && (( counter++ ))
|
|
else
|
|
case "${words[$counter]}" in
|
|
-*)
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Bash splits words at "=", retaining "=" as a word, examples:
|
|
# "--log-level=error" => 3 words, "--log-opt syslog-facility=daemon" => 4 words
|
|
while [ "${words[$counter + 1]}" = "=" ] ; do
|
|
counter=$(( counter + 2))
|
|
done
|
|
|
|
(( counter++ ))
|
|
done
|
|
|
|
echo $counter
|
|
}
|
|
|
|
# Note for developers:
|
|
# Please arrange options sorted alphabetically by long name with the short
|
|
# options immediately following their corresponding long form.
|
|
# This order should be applied to lists, alternatives and code blocks.
|
|
|
|
#__buildah_previous_extglob_setting=$(shopt -p extglob)
|
|
#setopt extended_glob
|
|
|
|
# __buildah_list_mounted
|
|
__buildah_list_mounted() {
|
|
COMPREPLY=($(compgen -W "$(buildah mount | awk '{print $1}')" -- $cur))
|
|
}
|
|
|
|
__buildah_list_containers() {
|
|
COMPREPLY=($(compgen -W "$(buildah containers --format '{{.ContainerName}} {{.ContainerID}}' )" -- $cur))
|
|
}
|
|
__buildah_list_images() {
|
|
COMPREPLY=($(compgen -W "$(buildah images --format '{{.ID}} {{.Name}}' )" -- $cur))
|
|
}
|
|
__buildah_list_images_scratch() {
|
|
COMPREPLY=($(compgen -W "$(buildah images --format '{{.ID}} {{.Name}}' ) scratch" -- $cur))
|
|
}
|
|
__buildah_list_containers_images() {
|
|
COMPREPLY=($(compgen -W "$(buildah containers --format '{{.ContainerName}} {{.ContainerID}}') $(buildah images --format '{{.ID}} {{.Name}}')" -- $cur))
|
|
}
|
|
|
|
__buildah_pos_first_nonflag() {
|
|
local argument_flags=$1
|
|
|
|
local counter=$((${subcommand_pos:-${command_pos}} + 1))
|
|
while [ $counter -le $cword ]; do
|
|
if [ -n "$argument_flags" ] && eval "case '${words[$counter]}' in $argument_flags) true ;; *) false ;; esac"; then
|
|
((counter++))
|
|
else
|
|
case "${words[$counter]}" in
|
|
-*) ;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
fi
|
|
((counter++))
|
|
done
|
|
|
|
echo $counter
|
|
}
|
|
|
|
# Transforms a multiline list of strings into a single line string
|
|
# with the words separated by "|".
|
|
# This is used to prepare arguments to __buildah_pos_first_nonflag().
|
|
__buildah_to_alternatives() {
|
|
local parts=($1)
|
|
local IFS='|'
|
|
echo "${parts[*]}"
|
|
}
|
|
|
|
# Transforms a multiline list of options into an extglob pattern
|
|
# suitable for use in case statements.
|
|
__buildah_to_extglob() {
|
|
local extglob=$(__buildah_to_alternatives "$1")
|
|
echo "@($extglob)"
|
|
}
|
|
|
|
# Subcommand processing.
|
|
# Locates the first occurrence of any of the subcommands contained in the
|
|
# first argument. In case of a match, calls the corresponding completion
|
|
# function and returns 0.
|
|
# If no match is found, 1 is returned. The calling function can then
|
|
# continue processing its completion.
|
|
#
|
|
# TODO if the preceding command has options that accept arguments and an
|
|
# argument is equal ot one of the subcommands, this is falsely detected as
|
|
# a match.
|
|
__buildah_subcommands() {
|
|
local subcommands="$1"
|
|
|
|
local counter=$(($command_pos + 1))
|
|
while [ $counter -lt $cword ]; do
|
|
case "${words[$counter]}" in
|
|
$(__buildah_to_extglob "$subcommands") )
|
|
subcommand_pos=$counter
|
|
local subcommand=${words[$counter]}
|
|
local completions_func=_buildah_${command}_${subcommand}
|
|
declare -F $completions_func >/dev/null && $completions_func
|
|
return 0
|
|
;;
|
|
esac
|
|
(( counter++ ))
|
|
done
|
|
return 1
|
|
}
|
|
|
|
# suppress trailing whitespace
|
|
__buildah_nospace() {
|
|
# compopt is not available in ancient bash versions
|
|
type compopt &>/dev/null && compopt -o nospace
|
|
}
|
|
|
|
|
|
# global options that may appear after the buildah command
|
|
_buildah_buildah() {
|
|
local boolean_options="
|
|
--help -h
|
|
--version -v
|
|
"
|
|
local options_with_args="
|
|
--registries-conf
|
|
--registries-conf-dir
|
|
--root
|
|
--runroot
|
|
--storage-driver
|
|
--storage-opt
|
|
--userns-uid-map
|
|
--userns-gid-map
|
|
"
|
|
|
|
case "$prev" in
|
|
--root | --runroot)
|
|
case "$cur" in
|
|
*:*) ;; # TODO somehow do _filedir for stuff inside the image, if it's already specified (which is also somewhat difficult to determine)
|
|
'')
|
|
COMPREPLY=($(compgen -W '/' -- "$cur"))
|
|
__buildah_nospace
|
|
;;
|
|
*)
|
|
_filedir
|
|
__buildah_nospace
|
|
;;
|
|
esac
|
|
return
|
|
;;
|
|
--storage-driver)
|
|
COMPREPLY=($(compgen -W 'devicemapper overlay2' -- "$cur"))
|
|
return
|
|
;;
|
|
$(__buildah_to_extglob "$options_with_args"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
local counter=$(__buildah_pos_first_nonflag $(__buildah_to_extglob "$options_with_args"))
|
|
if [ $cword -eq $counter ]; then
|
|
COMPREPLY=($(compgen -W "${commands[*]} help" -- "$cur"))
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_rmi() {
|
|
local boolean_options="
|
|
--all
|
|
-a
|
|
--prune
|
|
-p
|
|
--force
|
|
-f
|
|
--help
|
|
-h
|
|
"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_rm() {
|
|
local boolean_options="
|
|
--all
|
|
-a
|
|
--help
|
|
-h
|
|
"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_help() {
|
|
local counter=$(__buildah_pos_first_nonflag)
|
|
if [ $cword -eq $counter ]; then
|
|
COMPREPLY=($(compgen -W "${commands[*]}" -- "$cur"))
|
|
fi
|
|
}
|
|
|
|
_buildah_config() {
|
|
local boolean_options="
|
|
--add-history
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
--annotation
|
|
-a
|
|
--arch
|
|
--author
|
|
--cmd
|
|
--comment
|
|
--created-by
|
|
--domainname
|
|
--entrypoint
|
|
--env
|
|
-e
|
|
--healthcheck
|
|
--healthcheck-interval
|
|
--healthcheck-retries
|
|
--healthcheck-start-period
|
|
--healthcheck-timeout
|
|
--history-comment
|
|
--hostname
|
|
--label
|
|
-l
|
|
--onbuild
|
|
--os
|
|
--port
|
|
-p
|
|
--shell
|
|
--stop-signal
|
|
--user
|
|
-u
|
|
--volume
|
|
-v
|
|
--workingdir
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_commit() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--disable-compression
|
|
-D
|
|
--manifest
|
|
--quiet
|
|
-q
|
|
--rm
|
|
--squash
|
|
--tls-verify
|
|
--omit-timestamp
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--creds
|
|
--format
|
|
-f
|
|
--iidfile
|
|
--sign-by
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$prev" in
|
|
--signature-policy)
|
|
case "$cur" in
|
|
*:*) ;; # TODO somehow do _filedir for stuff inside the image, if it's already specified (which is also somewhat difficult to determine)
|
|
'')
|
|
COMPREPLY=($(compgen -W '/' -- "$cur"))
|
|
__buildah_nospace
|
|
;;
|
|
*)
|
|
_filedir
|
|
__buildah_nospace
|
|
;;
|
|
esac
|
|
return
|
|
;;
|
|
|
|
$(__buildah_to_extglob "$options_with_args"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_bud() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--layers
|
|
--no-cache
|
|
--omit-timestamp
|
|
--pull
|
|
--pull-always
|
|
--pull-never
|
|
--quiet
|
|
-q
|
|
--squash
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--arch
|
|
--add-host
|
|
--annotation
|
|
--authfile
|
|
--build-arg
|
|
--cap-add
|
|
--cap-drop
|
|
--cert-dir
|
|
--cgroup-parent
|
|
--cni-config-dir
|
|
--cni-plugin-path
|
|
--cpu-period
|
|
--cpu-quota
|
|
--cpu-shares
|
|
--cpuset-cpus
|
|
--cpuset-mems
|
|
--creds
|
|
--decryption-key
|
|
--device
|
|
--dns-search
|
|
--dns
|
|
--dns-option
|
|
-f
|
|
--file
|
|
--format
|
|
--http-proxy
|
|
--ignorefile
|
|
--iidfile
|
|
--isolation
|
|
--ipc
|
|
--label
|
|
--loglevel
|
|
--manifest
|
|
-m
|
|
--memory
|
|
--memory-swap
|
|
--net
|
|
--network
|
|
--no-pivot
|
|
--os
|
|
--pid
|
|
--platform
|
|
--runtime
|
|
--runtime-flag
|
|
--security-opt
|
|
--shm-size
|
|
--sign-by
|
|
-t
|
|
--tag
|
|
--target
|
|
--ulimit
|
|
--userns
|
|
--userns-uid-map
|
|
--userns-gid-map
|
|
--userns-uid-map-user
|
|
--userns-gid-map-group
|
|
--uts
|
|
--volume
|
|
-v
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$prev" in
|
|
--runtime)
|
|
COMPREPLY=($(compgen -W 'runc runv' -- "$cur"))
|
|
;;
|
|
$(__buildah_to_extglob "$options_with_args"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_build_using_dockerfile() {
|
|
_buildah_bud "$@"
|
|
}
|
|
|
|
_buildah_run() {
|
|
local boolean_options="
|
|
--add-history
|
|
--help
|
|
-t
|
|
--tty
|
|
--terminal
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
--cap-add
|
|
--cap-drop
|
|
--cni-config-dir
|
|
--cni-plugin-path
|
|
--hostname
|
|
--ipc
|
|
--isolation
|
|
--mount
|
|
--net
|
|
--network
|
|
--pid
|
|
--runtime
|
|
--runtime-flag
|
|
--security-opt
|
|
--user
|
|
--uts
|
|
--volume
|
|
-v
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$prev" in
|
|
--runtime)
|
|
COMPREPLY=($(compgen -W 'runc runv' -- "$cur"))
|
|
;;
|
|
$(__buildah_to_extglob "$options_with_args"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_copy() {
|
|
local boolean_options="
|
|
--add-history
|
|
--help
|
|
-h
|
|
--quiet
|
|
-q
|
|
"
|
|
|
|
local options_with_args="
|
|
--chown
|
|
--contextdir
|
|
--ignorefile
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_add() {
|
|
local boolean_options="
|
|
--add-history
|
|
--help
|
|
-h
|
|
--quiet
|
|
-q
|
|
"
|
|
|
|
local options_with_args="
|
|
-chown
|
|
--contextdir
|
|
--ignorefile
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_unmount() {
|
|
_buildah_umount $@
|
|
}
|
|
|
|
_buildah_umount() {
|
|
local boolean_options="
|
|
--all
|
|
-a
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_mounted
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_pull() {
|
|
local boolean_options="
|
|
--all-tags
|
|
-a
|
|
--help
|
|
-h
|
|
--quiet
|
|
-q
|
|
--tls-verify
|
|
--remove-signatures
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--creds
|
|
--decryption-key
|
|
--policy
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_push() {
|
|
local boolean_options="
|
|
--all
|
|
--help
|
|
-h
|
|
--disable-compression
|
|
-D
|
|
--quiet
|
|
-q
|
|
--rm
|
|
--tls-verify
|
|
--remove-signatures
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--creds
|
|
--encrypt-layer
|
|
--encryption-key
|
|
--format
|
|
-f
|
|
--sign-by
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$prev" in
|
|
--signature-policy)
|
|
case "$cur" in
|
|
*:*) ;; # TODO somehow do _filedir for stuff inside the image, if it's already specified (which is also somewhat difficult to determine)
|
|
'')
|
|
COMPREPLY=($(compgen -W '/' -- "$cur"))
|
|
__buildah_nospace
|
|
;;
|
|
*)
|
|
_filedir
|
|
__buildah_nospace
|
|
;;
|
|
esac
|
|
return
|
|
;;
|
|
|
|
$(__buildah_to_extglob "$options_with_args"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_logout() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--all
|
|
-a
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_login() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--get-login
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--password string
|
|
-p
|
|
--password-stdin
|
|
--username
|
|
-u
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--all
|
|
"
|
|
subcommands="
|
|
add
|
|
annotate
|
|
create
|
|
inspect
|
|
push
|
|
remove
|
|
"
|
|
__buildah_subcommands "$subcommands" && return
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options " -- "$cur"))
|
|
;;
|
|
*)
|
|
COMPREPLY=( $( compgen -W "$subcommands" -- "$cur" ) )
|
|
;;
|
|
esac
|
|
|
|
}
|
|
_buildah_manifest_add() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--all
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--annotation
|
|
--arch
|
|
--cert-dir
|
|
--creds
|
|
--features
|
|
--os
|
|
--os-features
|
|
--os-version
|
|
--variant
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest_annotate() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
--annotation
|
|
--arch
|
|
--features
|
|
--os
|
|
--os-features
|
|
--os-version
|
|
--variant
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest_create() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--all
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest_inspect() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest_push() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--all
|
|
--remove-signatures
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--creds
|
|
--digestfile
|
|
--format
|
|
-f
|
|
--rm
|
|
--sign-by
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_manifest_remove() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_mount() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--notruncate
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_ps() {
|
|
_buildah_containers
|
|
}
|
|
|
|
_buildah_list() {
|
|
_buildah_containers
|
|
}
|
|
|
|
_buildah_ls() {
|
|
_buildah_containers
|
|
}
|
|
|
|
_buildah_containers() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--json
|
|
--quiet
|
|
-q
|
|
--noheading
|
|
-n
|
|
--notruncate
|
|
-a
|
|
--all
|
|
"
|
|
|
|
local options_with_args="
|
|
--filter
|
|
-f
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_images() {
|
|
local boolean_options="
|
|
--all
|
|
-a
|
|
--digests
|
|
--help
|
|
-h
|
|
--history
|
|
--json
|
|
--quiet
|
|
-q
|
|
--noheading
|
|
-n
|
|
--no-trunc
|
|
--notruncate
|
|
"
|
|
|
|
local options_with_args="
|
|
--filter
|
|
-f
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_info() {
|
|
local options_with_args="
|
|
--log-level
|
|
--D
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_inspect() {
|
|
local options_with_args="
|
|
--format
|
|
-f
|
|
--type
|
|
-t
|
|
"
|
|
|
|
local all_options="$options_with_args"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_containers_images
|
|
;;
|
|
|
|
esac
|
|
}
|
|
|
|
_buildah_tag() {
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_from() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--pull
|
|
--pull-always
|
|
--pull-never
|
|
--quiet
|
|
-q
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--add-host
|
|
--authfile
|
|
--cap-add
|
|
--cap-drop
|
|
--cert-dir
|
|
--cgroup-parent
|
|
--cidfile
|
|
--cni-config-dir
|
|
--cni-plugin-path
|
|
--cpu-period
|
|
--cpu-quota
|
|
--cpu-shares
|
|
--cpuset-cpus
|
|
--cpuset-mems
|
|
--creds
|
|
--device
|
|
--http-proxy
|
|
--ipc
|
|
--isolation
|
|
-m
|
|
--memory
|
|
--memory-swap
|
|
--name
|
|
--net
|
|
--network
|
|
--pid
|
|
--security-opt
|
|
--shm-size
|
|
--ulimit
|
|
--userns
|
|
--userns-uid-map
|
|
--userns-gid-map
|
|
--userns-uid-map-user
|
|
--userns-gid-map-group
|
|
--uts
|
|
--volume
|
|
"
|
|
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__buildah_list_images_scratch
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_buildah_unshare() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
--mount
|
|
"
|
|
}
|
|
|
|
_buildah_rename() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
}
|
|
|
|
_buildah_version() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
}
|
|
|
|
_buildah() {
|
|
#local previous_extglob_setting=$(shopt -p extglob)
|
|
#shopt -s extglob
|
|
|
|
local commands=(
|
|
add
|
|
bud
|
|
build-using-dockerfile
|
|
commit
|
|
config
|
|
containers
|
|
copy
|
|
delete
|
|
from
|
|
images
|
|
info
|
|
inspect
|
|
list
|
|
ls
|
|
manifest
|
|
mount
|
|
pull
|
|
push
|
|
ps
|
|
rename
|
|
rm
|
|
rmi
|
|
run
|
|
tag
|
|
umount
|
|
unmount
|
|
unshare
|
|
version
|
|
)
|
|
|
|
COMPREPLY=()
|
|
local cur prev words cword
|
|
_get_comp_words_by_ref -n : cur prev words cword
|
|
|
|
local command='buildah' command_pos=0 subcommand_pos
|
|
local counter=1
|
|
while [ $counter -lt $cword ]; do
|
|
case "${words[$counter]}" in
|
|
$(__buildah_to_extglob "$global_options_with_args") )
|
|
(( counter++ ))
|
|
;;
|
|
-*)
|
|
;;
|
|
=)
|
|
(( counter++ ))
|
|
;;
|
|
*)
|
|
command="${words[$counter]}"
|
|
command_pos=$counter
|
|
break
|
|
;;
|
|
esac
|
|
(( counter++ ))
|
|
done
|
|
|
|
local binary="${words[0]}"
|
|
|
|
local completions_func=_buildah_${command/-/_}
|
|
declare -F $completions_func >/dev/null && $completions_func
|
|
|
|
#eval "$previous_extglob_setting"
|
|
return 0
|
|
}
|
|
|
|
#eval "$__buildah_previous_extglob_setting"
|
|
#unset __buildah_previous_extglob_setting
|
|
|
|
complete -F _buildah buildah
|