summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_gsettings
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
committerAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
commit3e439c3863f14c82f70666804c8570a13b3732e6 (patch)
tree07036c43e0f3f9242bb6dd42cd2a849ec8ea8aca /Completion/Unix/Command/_gsettings
parent2aedc4b88fd0e87b89583983951b04b96f48efd3 (diff)
parent7b7e84f0815ed22a0ee348a217776529035dccf3 (diff)
downloadzsh-3e439c3863f14c82f70666804c8570a13b3732e6.tar.gz
zsh-3e439c3863f14c82f70666804c8570a13b3732e6.zip
Merge tag 'zsh-5.2-test-1' into debian
Diffstat (limited to 'Completion/Unix/Command/_gsettings')
-rw-r--r--Completion/Unix/Command/_gsettings47
1 files changed, 47 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_gsettings b/Completion/Unix/Command/_gsettings
new file mode 100644
index 000000000..72f015729
--- /dev/null
+++ b/Completion/Unix/Command/_gsettings
@@ -0,0 +1,47 @@
+#compdef gsettings
+
+local curcontext="$curcontext" state line expl ret=1
+local subcmds
+
+_arguments \
+ '(- 1 *)--version[show version information]' \
+ '--schemadir[specify location of schemata]:directory:_directories' \
+ ':command:->subcmds' \
+ '*::args:->subargs' && ret=0
+
+if [[ $state = subargs ]]; then
+ curcontext="${curcontext%:*}-$words[1]:"
+ case $words[1] in
+ help) state=subcmds;;
+ get|range|reset|writable|monitor)
+ _arguments ':schema:->schemata' ':key:->keys'
+ ;;
+ set)
+ _arguments ':schema:->schemata' ':key:->keys' ':value'
+ ;;
+ (list|reset)-(keys|recursively|children)) state=schemata ;;
+ *) _default && ret=0 ;;
+ esac
+fi
+
+case $state in
+ subcmds)
+ subcmds=( ${(L)${${(M)${${(f)"$(_call_program commands $service help)"}[(r)Commands:*,-2]}:# *}#??}/ ##/:} )
+ _describe -t commands 'command' subcmds -M 'r:?|-=* r:|=*' && ret=0
+ state=''
+ ;;
+ schemata)
+ if compset -P 1 '*:'; then
+ _directories && ret=0
+ else
+ _wanted schemata expl 'schema' compadd -M 'r:|.=* r:|=*' \
+ $(_call_program schemata $service list-schemas) && ret=0
+ fi
+ ;;
+ keys)
+ _wanted keys expl 'key' compadd \
+ $(_call_program keys $service list-keys $words[CURRENT-1]) && ret=0
+ ;;
+esac
+
+return ret