| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #!/bin/bash
- #
- # Copyright (c) 2023 Project CHIP Authors
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- # Get the list of commands from the output of the chip-tool,
- # where each command is prefixed with the ' | * ' string.
- _chip_tool_get_commands() {
- "$@" --help 2>&1 | awk '/ [|] [*] /{ print $3 }'
- }
- # Get the list of options from the output of the chip-tool,
- # where each option starts with the '[--' string.
- _chip_tool_get_options() {
- "$@" --help 2>&1 | awk -F'[[]|[]]' '/^[[]--/{ print $2 }'
- }
- _chip_tool() {
- local cur prev words cword split
- _init_completion -s || return
- # Get command line arguments up to the cursor position
- local args=("${COMP_WORDS[@]:0:$cword+1}")
- local command=0
- case "$prev" in
- --commissioner-name)
- readarray -t COMPREPLY < <(compgen -W "alpha beta gamma 4 5 6 7 8 9" -- "$cur")
- ;;
- --paa-trust-store-path | --cd-trust-store-path)
- _filedir -d
- ;;
- --storage-directory)
- _filedir -d
- ;;
- *)
- command=1
- ;;
- esac
- if [ "$command" -eq 1 ]; then
- case "$cur" in
- -*)
- words=$(_chip_tool_get_options "${args[@]}")
- ;;
- *)
- words=$(_chip_tool_get_commands "${args[@]}")
- ;;
- esac
- readarray -t COMPREPLY < <(compgen -W "$words" -- "$cur")
- fi
- }
- complete -F _chip_tool chip-tool
|