Clean up packer completion and add to clean_files.txt
parent
6a69931240
commit
f4f229573d
|
|
@ -32,6 +32,7 @@ themes/powerline
|
||||||
#
|
#
|
||||||
completion/available/cargo.completion.bash
|
completion/available/cargo.completion.bash
|
||||||
completion/available/knife.completion.bash
|
completion/available/knife.completion.bash
|
||||||
|
completion/available/packer.completion.bash
|
||||||
completion/available/pipx.completion.bash
|
completion/available/pipx.completion.bash
|
||||||
completion/available/rustup.completion.bash
|
completion/available/rustup.completion.bash
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,163 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
cite "about-completion"
|
||||||
|
about-completion "packer completion"
|
||||||
|
|
||||||
# Packer (http://www.packer.io) bash completion
|
if _binary_exists packer; then
|
||||||
#
|
complete -C packer packer
|
||||||
# This script provides bash completion for packer and supports:
|
fi
|
||||||
#
|
|
||||||
# - template filename completion (*.json) in cwd
|
|
||||||
# - support for basic options (i.e.. -debug)
|
|
||||||
# - support for complex options (i.e. -parallel=[true|false]
|
|
||||||
#
|
|
||||||
# The scirpt has been successfully tested with packer-0.6.0 and the
|
|
||||||
# following OS:
|
|
||||||
#
|
|
||||||
# - OS X 10.9
|
|
||||||
# - CentOS-6.5
|
|
||||||
# - Ubuntu 12.04 Server
|
|
||||||
#
|
|
||||||
# The script technically is heavily inspired by the git-completion.bash
|
|
||||||
# script. Kudos to Shawn O. Pearce <spearce@spearce.org> and all other
|
|
||||||
# contributors for the inspiration and especially to the bash-completion
|
|
||||||
# team in general.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 IT Services Department, University of Bern
|
|
||||||
#
|
|
||||||
# This script is licensed under the MIT License (MIT)
|
|
||||||
# For licsense details see the LICENSE file included in the repository
|
|
||||||
# or read the license text at http://opensource.org/licenses/MIT.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Generates completion reply, appending a space to possible completion words,
|
|
||||||
# if necessary.
|
|
||||||
# It accepts 2 arguments though the second is optional:
|
|
||||||
# 1: List of possible completion words.
|
|
||||||
# 2: Generate possible completion matches for this word (optional).
|
|
||||||
__packercomp ()
|
|
||||||
{
|
|
||||||
local cur_="${2-$cur}"
|
|
||||||
|
|
||||||
case "$cur_" in
|
|
||||||
-*=)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
local c i=0 IFS=$' \t\n'
|
|
||||||
for c in $1; do
|
|
||||||
if [[ $c == "$cur_"* ]]; then
|
|
||||||
case $c in
|
|
||||||
-*=*|*.) ;;
|
|
||||||
*) c="$c " ;;
|
|
||||||
esac
|
|
||||||
COMPREPLY[i++]="$c"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates completion reply for template files in cwd.
|
|
||||||
__packercomp_template_file ()
|
|
||||||
{
|
|
||||||
local IFS=$'\n'
|
|
||||||
|
|
||||||
COMPREPLY=($(compgen -S " " -A file -X '!*.json' -- "${cur}"))
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates completion for the build command.
|
|
||||||
__packer_build ()
|
|
||||||
{
|
|
||||||
local builders="
|
|
||||||
amazon-ebs amazon-instance amazon-chroot digitalocean docker
|
|
||||||
googlecompute openstack parallels-iso parallels-pvm qemu
|
|
||||||
virtualbox-iso virtualbox-ovf vmware-iso vmware-vmx"
|
|
||||||
|
|
||||||
case "$cur" in
|
|
||||||
-parallel=*)
|
|
||||||
__packercomp "false true" "${cur##-parallel=}"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
-except=*)
|
|
||||||
__packercomp "$builders" "${cur##-except=}"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
-only=*)
|
|
||||||
__packercomp "$builders" "${cur##-only=}"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
__packercomp "-debug -force -machine-readable -except= -only= -parallel= -var -var-file"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
esac
|
|
||||||
|
|
||||||
__packercomp_template_file
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates completion for the fix command.
|
|
||||||
__packer_fix ()
|
|
||||||
{
|
|
||||||
__packercomp_template_file
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates completion for the inspect command.
|
|
||||||
__packer_inspect ()
|
|
||||||
{
|
|
||||||
case "$cur" in
|
|
||||||
-*)
|
|
||||||
__packercomp "-machine-readable"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
esac
|
|
||||||
|
|
||||||
__packercomp_template_file
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates completion for the validate command.
|
|
||||||
__packer_validate ()
|
|
||||||
{
|
|
||||||
__packercomp_template_file
|
|
||||||
}
|
|
||||||
|
|
||||||
# Main function for packer completion.
|
|
||||||
#
|
|
||||||
# Searches for a command in $COMP_WORDS. If one is found
|
|
||||||
# the appropriate function from above is called, if not
|
|
||||||
# completion for global options is done.
|
|
||||||
_packer_completion ()
|
|
||||||
{
|
|
||||||
cur=${COMP_WORDS[COMP_CWORD]}
|
|
||||||
# Words containing an equal sign get split into tokens in bash > 4, which
|
|
||||||
# doesn't come in handy here.
|
|
||||||
# This is handled here. bash < 4 does not split.
|
|
||||||
declare -f _get_comp_words_by_ref >/dev/null && _get_comp_words_by_ref -n = cur
|
|
||||||
|
|
||||||
COMPREPLY=()
|
|
||||||
local i c=1 command
|
|
||||||
|
|
||||||
while [ $c -lt $COMP_CWORD ]; do
|
|
||||||
i="${COMP_WORDS[c]}"
|
|
||||||
case "$i" in
|
|
||||||
-*) ;;
|
|
||||||
*) command="$i"; break ;;
|
|
||||||
esac
|
|
||||||
((c++))
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z $command ]; then
|
|
||||||
case "$cur" in
|
|
||||||
'-'*)
|
|
||||||
__packercomp "-machine-readable --help --version"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
__packercomp "build fix inspect validate"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local completion_func="__packer_${command}"
|
|
||||||
declare -f $completion_func >/dev/null && $completion_func
|
|
||||||
}
|
|
||||||
|
|
||||||
complete -o nospace -F _packer_completion packer
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue