summaryrefslogtreecommitdiff
path: root/bin/dconf-bash-completion.sh
blob: 4d1031045a627a6a66fbdb9965dd94b5b24f42a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# Check for bash
[ -z "$BASH_VERSION" ] && return

####################################################################################################

__dconf() {
  local choices

  case "${COMP_CWORD}" in
    1)
      choices=$'help \nread \nlist \nwrite \nupdate \nlock \nunlock \nwatch '
      ;;

    2)
      case "${COMP_WORDS[1]}" in
        help)
          choices=$'help \nread \nlist \nwrite \nupdate \nlock \nunlock \nwatch '
          ;;
        read|list|write|lock|unlock|watch)
          choices="$(dconf _complete "${COMP_WORDS[2]}")"
          ;;
      esac
      ;;
  esac

  local IFS=$'\n'
  COMPREPLY=($(compgen -W "${choices}" "${COMP_WORDS[$COMP_CWORD]}"))
}

####################################################################################################

complete -o nospace -F __dconf dconf