# Relational pipes
# Copyright © 2020 František Kučera (Frantovo.cz, GlobalCode.info)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
_relpipe_out_ini_completion() {
local w0 w1 w2 w3
COMPREPLY=()
w0=${COMP_WORDS[COMP_CWORD]}
w1=${COMP_WORDS[COMP_CWORD-1]}
w2=${COMP_WORDS[COMP_CWORD-2]}
w3=${COMP_WORDS[COMP_CWORD-3]}
BOOLEAN_VALUES=(
"true"
"false"
)
STYLES=(
"auto"
"dropped"
"literal"
"section-first"
"standard"
)
DIALECTS=(
"java-properties"
"java-manifest-mf"
);
QUOTING_TYPES=(
"none"
"apostrophes"
"quotes"
)
WRITER_OPTIONS=(
"dialect"
"comment-separator-for-sections"
"comment-separator-for-entries"
"comment-separator-standalone"
"key-value-separator"
"escape-backspace"
"escape-basic"
"escape-java-properties"
"quotes-type-for-sections"
"quotes-type-for-keys"
"quotes-type-for-values"
"quotes-pattern-for-sections"
"quotes-pattern-for-keys"
"quotes-pattern-for-values"
"skip-empty"
"skip-null"
"allow-sections"
"hierarchy-separator"
);
if [[ "$w1" == "--relation" && "x$w0" == "x" ]]; then COMPREPLY=("''")
elif [[ "$w1" == "--style" ]]; then COMPREPLY=($(compgen -W "${STYLES[*]}" -- "$w0"))
elif [[ "$w1" == "--writer-option" ]]; then COMPREPLY=($(compgen -W "${WRITER_OPTIONS[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "dialect" ]]; then COMPREPLY=($(compgen -W "${DIALECTS[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-for-sections" ]]; then COMPREPLY=("' ; '")
elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-for-entries" ]]; then COMPREPLY=("' ; '")
elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-standalone" ]]; then COMPREPLY=("'; '")
elif [[ "$w2" == "--writer-option" && "$w1" == "key-value-separator" ]]; then COMPREPLY=("' = '")
elif [[ "$w2" == "--writer-option" && "$w1" == "escape-backspace" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "escape-basic" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "escape-java-properties" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "quotes-type-for-sections" ]]; then COMPREPLY=($(compgen -W "${QUOTING_TYPES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "quotes-type-for-keys" ]]; then COMPREPLY=($(compgen -W "${QUOTING_TYPES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "quotes-type-for-values" ]]; then COMPREPLY=($(compgen -W "${QUOTING_TYPES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "skip-empty" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "skip-null" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "allow-sections" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0"))
elif [[ "$w2" == "--writer-option" && "$w1" == "hierarchy-separator" ]]; then COMPREPLY=("'/'")
elif [[ "$w2" == "--writer-option" && "x$w0" == "x" ]]; then COMPREPLY=("''")
else
OPTIONS=(
"--writer-option"
"--relation"
"--style"
)
COMPREPLY=($(compgen -W "${OPTIONS[*]}" -- "$w0"))
fi
}
complete -F _relpipe_out_ini_completion relpipe-out-ini