[gnome-shell] extensions-tool: Add bash completion
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] extensions-tool: Add bash completion
- Date: Wed, 21 Aug 2019 16:39:02 +0000 (UTC)
commit 0de5209cf19743d92541b9640918ab7ca5d213df
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Aug 28 04:38:23 2018 +0200
extensions-tool: Add bash completion
Completions are clearly helpful, in particular for extension UUIDs
that are often lengthy strings containing random usernames.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/1234
meson.build | 2 +
.../completion/bash/gnome-extensions | 51 ++++++++++++++++++++++
src/extensions-tool/meson.build | 6 +++
3 files changed, 59 insertions(+)
---
diff --git a/meson.build b/meson.build
index e11618f037..2bd67399d7 100644
--- a/meson.build
+++ b/meson.build
@@ -132,6 +132,8 @@ else
have_systemd = false
endif
+bash_completion = dependency('bash-completion', required: false)
+
if get_option('man')
xsltproc = find_program('xsltproc')
diff --git a/src/extensions-tool/completion/bash/gnome-extensions
b/src/extensions-tool/completion/bash/gnome-extensions
new file mode 100644
index 0000000000..e0286729b2
--- /dev/null
+++ b/src/extensions-tool/completion/bash/gnome-extensions
@@ -0,0 +1,51 @@
+
+# Check for bash
+[ -z "$BASH_VERSION" ] && return
+
+################################################################################
+
+__gnome_extensions() {
+ local commands="version enable disable info list create"
+ local COMMAND=${COMP_WORDS[1]}
+
+ _init_completion -s || return
+
+ case "${COMP_CWORD}" in
+ 1)
+ COMPREPLY=($(compgen -W "help $commands" -- "$2"))
+ return 0
+ ;;
+
+ 2)
+ case "$COMMAND" in
+ help)
+ COMPREPLY=($(compgen -W "$commands" -- "$2"))
+ return 0
+ ;;
+
+ disable)
+ local list_opt=--enabled
+ ;;&
+ enable)
+ local list_opt=--disabled
+ ;;&
+ enable|disable|info)
+ COMPREPLY=($(compgen -W "`gnome-extensions list $list_opt`" -- "$2"))
+ return 0
+ ;;
+ esac
+ ;;
+ esac
+
+ # Stop if we are currently waiting for an option value
+ $split && return
+
+ # Otherwise, get the supported options for ${COMMAND} (if any)
+ COMPREPLY=($(compgen -W "$(_parse_help $1 "help $COMMAND")" -- "$2"))
+ [[ $COMPREPLY == *= ]] && compopt -o nospace
+ return 0
+}
+
+################################################################################
+
+complete -F __gnome_extensions gnome-extensions
diff --git a/src/extensions-tool/meson.build b/src/extensions-tool/meson.build
index 8e8f818cb8..edd445a5e2 100644
--- a/src/extensions-tool/meson.build
+++ b/src/extensions-tool/meson.build
@@ -26,3 +26,9 @@ executable('gnome-extensions',
dependencies: [gio_dep, gio_unix_dep],
install: true
)
+
+if bash_completion.found()
+ install_data('completion/bash/gnome-extensions',
+ install_dir: bash_completion.get_pkgconfig_variable('completionsdir')
+ )
+endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]