f9992d71a3
Signed-off-by: umohnani8 <umohnani@redhat.com>
564 lines
9.7 KiB
Bash
564 lines
9.7 KiB
Bash
#! /bin/bash
|
|
|
|
: ${PROG:=$(basename ${BASH_SOURCE})}
|
|
|
|
__kpod_list_images() {
|
|
COMPREPLY=($(compgen -W "$(kpod images -q)" -- $cur))
|
|
}
|
|
|
|
__kpod_list_containers() {
|
|
COMPREPLY=($(compgen -W "$(kpod ps -aq)" -- $cur))
|
|
}
|
|
|
|
_kpod_diff() {
|
|
local options_with_args="
|
|
--format
|
|
"
|
|
local boolean_options="
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_export() {
|
|
local options_with_args="
|
|
--output
|
|
-o
|
|
"
|
|
local boolean_options="
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_history() {
|
|
local options_with_args="
|
|
--format
|
|
"
|
|
local boolean_options="
|
|
--human -H
|
|
--no-trunc
|
|
--quiet -q
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_info() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--debug
|
|
"
|
|
local options_with_args="
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_images() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--quiet
|
|
-q
|
|
--noheading
|
|
-n
|
|
--no-trunc
|
|
--digests
|
|
--filter
|
|
-f
|
|
"
|
|
local options_with_args="
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_inspect() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
local options_with_args="
|
|
--format
|
|
-f
|
|
--type
|
|
-t
|
|
--size
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
_kpod_kill() {
|
|
local options_with_args="
|
|
--signal -s
|
|
"
|
|
local boolean_options="
|
|
--help
|
|
-h"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_logs() {
|
|
local options_with_args="
|
|
--since
|
|
--tail
|
|
"
|
|
local boolean_options="
|
|
--follow
|
|
-f
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_pull() {
|
|
local options_with_args="
|
|
--authfile
|
|
--creds
|
|
--cert-dir
|
|
--signature-policy
|
|
"
|
|
local boolean_options="
|
|
--all-tags -a
|
|
--quiet
|
|
-q
|
|
--tls-verify
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_unmount() {
|
|
_kpod_umount $@
|
|
}
|
|
|
|
_kpod_umount() {
|
|
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
|
|
}
|
|
|
|
_kpod_mount() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--notruncate
|
|
"
|
|
|
|
local options_with_args="
|
|
--label
|
|
--format
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_push() {
|
|
local boolean_options="
|
|
--disable-compression
|
|
-D
|
|
--quiet
|
|
-q
|
|
--remove-signatures
|
|
--tls-verify
|
|
"
|
|
|
|
local options_with_args="
|
|
--authfile
|
|
--cert-dir
|
|
--creds
|
|
--sign-by
|
|
--signature-policy
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_rename() {
|
|
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"))
|
|
;;
|
|
*)
|
|
__kpod_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_rm() {
|
|
local boolean_options="
|
|
--force
|
|
-f
|
|
"
|
|
|
|
local options_with_args="
|
|
"
|
|
|
|
local all_options="$options_with_args $boolean_options"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_rmi() {
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
--force
|
|
-f
|
|
"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_images
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_stats() {
|
|
local boolean_options="
|
|
--help
|
|
--all
|
|
-a
|
|
--no-stream
|
|
--format
|
|
"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=($(compgen -W "$boolean_options $options_with_args" -- "$cur"))
|
|
;;
|
|
*)
|
|
__kpod_list_containers
|
|
;;
|
|
esac
|
|
}
|
|
|
|
kpod_tag() {
|
|
local options_with_args="
|
|
"
|
|
local boolean_options="
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_version() {
|
|
local options_with_args="
|
|
"
|
|
local boolean_options="
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_save() {
|
|
local options_with_args="
|
|
--output -o
|
|
--format
|
|
"
|
|
local boolean_options="
|
|
--quiet -q
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_export() {
|
|
local options_with_args="
|
|
--output -o
|
|
"
|
|
local boolean_options="
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_pause() {
|
|
local options_with_args="
|
|
--help -h
|
|
"
|
|
local boolean_options=""
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_ps() {
|
|
local options_with_args="
|
|
--filter -f
|
|
--format
|
|
--last -n
|
|
"
|
|
local boolean_options="
|
|
--all -a
|
|
--latest -l
|
|
--no-trunc
|
|
--quiet -q
|
|
--size -s
|
|
--namespace --ns
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_stop() {
|
|
local options_with_args="
|
|
--timeout -t
|
|
"
|
|
local boolean_options=""
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_unpause() {
|
|
local options_with_args="
|
|
--help -h
|
|
"
|
|
local boolean_options=""
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
|
|
_kpod_wait() {
|
|
local options_with_args=""
|
|
local boolean_options="--help -h"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_complete_() {
|
|
local options_with_args=$1
|
|
local boolean_options="$2 -h --help"
|
|
|
|
case "$prev" in
|
|
$options_with_args)
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_kpod_load() {
|
|
local options_with_args="
|
|
--input -i
|
|
--signature-policy
|
|
"
|
|
local boolean_options="
|
|
--quiet -q
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_login() {
|
|
local options_with_args="
|
|
--username
|
|
-u
|
|
--password
|
|
-p
|
|
--authfile
|
|
"
|
|
local boolean_options="
|
|
--help
|
|
-h
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_logout() {
|
|
local options_with_args="
|
|
--authfile
|
|
"
|
|
local boolean_options="
|
|
--all
|
|
-a
|
|
--help
|
|
-h
|
|
"
|
|
_complete_ "$options_with_args" "$boolean_options"
|
|
}
|
|
|
|
_kpod_kpod() {
|
|
local options_with_args="
|
|
--config -c
|
|
--root
|
|
--runroot
|
|
--storage-driver
|
|
--storage-opt
|
|
--log-level
|
|
"
|
|
local boolean_options="
|
|
--help -h
|
|
--version -v
|
|
"
|
|
commands="
|
|
diff
|
|
export
|
|
history
|
|
images
|
|
info
|
|
inspect
|
|
kill
|
|
load
|
|
login
|
|
logout
|
|
logs
|
|
mount
|
|
pause
|
|
ps
|
|
pull
|
|
push
|
|
rename
|
|
rm
|
|
rmi
|
|
save
|
|
stats
|
|
stop
|
|
tag
|
|
umount
|
|
unmount
|
|
unpause
|
|
version
|
|
wait
|
|
"
|
|
|
|
case "$prev" in
|
|
$main_options_with_args_glob )
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
|
|
;;
|
|
*)
|
|
COMPREPLY=( $( compgen -W "${commands[*]} help" -- "$cur" ) )
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_cli_bash_autocomplete() {
|
|
local cur opts base
|
|
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
COMPREPLY=()
|
|
local cur prev words cword
|
|
|
|
_get_comp_words_by_ref -n : cur prev words cword
|
|
|
|
local command=${PROG} cpos=0
|
|
local counter=1
|
|
counter=1
|
|
while [ $counter -lt $cword ]; do
|
|
case "!${words[$counter]}" in
|
|
*)
|
|
command=$(echo "${words[$counter]}" | sed 's/-/_/g')
|
|
cpos=$counter
|
|
(( cpos++ ))
|
|
break
|
|
;;
|
|
esac
|
|
(( counter++ ))
|
|
done
|
|
|
|
local completions_func=_kpod_${command}
|
|
declare -F $completions_func >/dev/null && $completions_func
|
|
|
|
eval "$previous_extglob_setting"
|
|
return 0
|
|
}
|
|
|
|
complete -F _cli_bash_autocomplete $PROG
|