From 9a0fe141561e9b9217bec658c886edef0a981ab6 Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Mon, 13 Oct 2014 19:18:45 +0200 Subject: programs: install completion files for all commands bash-completion has new completion loading code since version 1.90. The completion files are loaded on demand, with ${completionsdir}/${command} being sourced when a matching command is typed. This requires the completion files to be named for all commands. https://bugzilla.gnome.org/show_bug.cgi?id=738369 --- programs/Makefile.am | 11 ++++--- programs/completion/Makefile.am | 40 ++++++++++++++++++++++++++ programs/completion/gvfs | 64 ----------------------------------------- programs/completion/gvfs-cat | 64 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 109 insertions(+), 70 deletions(-) create mode 100644 programs/completion/Makefile.am delete mode 100755 programs/completion/gvfs create mode 100755 programs/completion/gvfs-cat (limited to 'programs') diff --git a/programs/Makefile.am b/programs/Makefile.am index 8291acb2..da18410c 100644 --- a/programs/Makefile.am +++ b/programs/Makefile.am @@ -1,5 +1,9 @@ NULL = +if ENABLE_BASHCOMP +SUBDIRS = completion +endif + AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_builddir) \ @@ -33,11 +37,6 @@ bin_SCRIPTS = \ gvfs-less \ $(NULL) -if ENABLE_BASHCOMP -profiledir = $(BASHCOMP_DIR) -profile_DATA = completion/gvfs -endif - gvfs_cat_SOURCES = gvfs-cat.c gvfs_cat_LDADD = $(libraries) @@ -89,4 +88,4 @@ gvfs_mkdir_LDADD = $(libraries) gvfs_mime_SOURCES = gvfs-mime.c gvfs_mime_LDADD = $(libraries) -EXTRA_DIST = gvfs-less completion/gvfs +EXTRA_DIST = gvfs-less diff --git a/programs/completion/Makefile.am b/programs/completion/Makefile.am new file mode 100644 index 00000000..06833e54 --- /dev/null +++ b/programs/completion/Makefile.am @@ -0,0 +1,40 @@ +NULL = + +bashcompdir = $(BASHCOMP_DIR) +bashcomp_DATA = gvfs-cat + +EXTRA_DIST = $(bashcomp_DATA) + +.PHONY = install-symlinks uninstall-symlinks + +symlinks = \ + gvfs-copy \ + gvfs-info \ + gvfs-less \ + gvfs-ls \ + gvfs-mkdir \ + gvfs-monitor-dir \ + gvfs-monitor-file \ + gvfs-move \ + gvfs-open \ + gvfs-rename \ + gvfs-rm \ + gvfs-save \ + gvfs-set-attribute \ + gvfs-trash \ + gvfs-tree \ + $(NULL) + +install-symlinks: + set -e; for file in $(symlinks); do \ + $(LN_S) -f gvfs-cat $(DESTDIR)$(BASHCOMP_DIR)/$$file; \ + done + +uninstall-symlinks: + set -e; for file in $(symlinks); do \ + rm -f $(DESTDIR)$(BASHCOMP_DIR)/$$file; \ + done + +install-data-local: install-symlinks + +uninstall-local: uninstall-symlinks diff --git a/programs/completion/gvfs b/programs/completion/gvfs deleted file mode 100755 index 16fdccde..00000000 --- a/programs/completion/gvfs +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (C) 2006-2007 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. -# -# Author: David Zeuthen - -# Check for bash -[ -z "$BASH_VERSION" ] && return - -#################################################################################################### - - -__gvfs_multiple_uris() { - local IFS=$'\n' - local cur="${COMP_WORDS[COMP_CWORD]}" - - COMPREPLY=($(compgen -W '$(gvfs-ls --show-completions "$cur")' -- "")) - - # don't misbehave on colons; See item E13 at http://tiswww.case.edu/php/chet/bash/FAQ - # We handle this locally be extracting any BLAH: prefix and removing it from the result. - # Not great, but better than globally changing COMP_WORDBREAKS - - case "$cur" in - *:*) - case "$COMP_WORDBREAKS" in - *:*) colon_prefix=$(echo $cur | sed 's/:[^:]*$/:/' ) - COMPREPLY=${COMPREPLY##${colon_prefix}} - ;; - esac - ;; - esac -} - -#################################################################################################### - -complete -o nospace -F __gvfs_multiple_uris gvfs-ls -complete -o nospace -F __gvfs_multiple_uris gvfs-info -complete -o nospace -F __gvfs_multiple_uris gvfs-cat -complete -o nospace -F __gvfs_multiple_uris gvfs-less -complete -o nospace -F __gvfs_multiple_uris gvfs-copy -complete -o nospace -F __gvfs_multiple_uris gvfs-mkdir -complete -o nospace -F __gvfs_multiple_uris gvfs-monitor-dir -complete -o nospace -F __gvfs_multiple_uris gvfs-monitor-file -complete -o nospace -F __gvfs_multiple_uris gvfs-move -complete -o nospace -F __gvfs_multiple_uris gvfs-open -complete -o nospace -F __gvfs_multiple_uris gvfs-rename -complete -o nospace -F __gvfs_multiple_uris gvfs-rm -complete -o nospace -F __gvfs_multiple_uris gvfs-save -complete -o nospace -F __gvfs_multiple_uris gvfs-set-attribute -complete -o nospace -F __gvfs_multiple_uris gvfs-trash -complete -o nospace -F __gvfs_multiple_uris gvfs-tree diff --git a/programs/completion/gvfs-cat b/programs/completion/gvfs-cat new file mode 100755 index 00000000..4eb4dae6 --- /dev/null +++ b/programs/completion/gvfs-cat @@ -0,0 +1,64 @@ +# Copyright (C) 2006-2007 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. +# +# Author: David Zeuthen + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + + +__gvfs_multiple_uris() { + local IFS=$'\n' + local cur="${COMP_WORDS[COMP_CWORD]}" + + COMPREPLY=($(compgen -W '$(gvfs-ls --show-completions "$cur")' -- "")) + + # don't misbehave on colons; See item E13 at http://tiswww.case.edu/php/chet/bash/FAQ + # We handle this locally be extracting any BLAH: prefix and removing it from the result. + # Not great, but better than globally changing COMP_WORDBREAKS + + case "$cur" in + *:*) + case "$COMP_WORDBREAKS" in + *:*) colon_prefix=$(echo $cur | sed 's/:[^:]*$/:/' ) + COMPREPLY=${COMPREPLY##${colon_prefix}} + ;; + esac + ;; + esac +} + +#################################################################################################### + +complete -o nospace -F __gvfs_multiple_uris gvfs-ls +complete -o nospace -F __gvfs_multiple_uris gvfs-info +complete -o nospace -F __gvfs_multiple_uris gvfs-cat +complete -o nospace -F __gvfs_multiple_uris gvfs-less +complete -o nospace -F __gvfs_multiple_uris gvfs-copy +complete -o nospace -F __gvfs_multiple_uris gvfs-mkdir +complete -o nospace -F __gvfs_multiple_uris gvfs-monitor-dir +complete -o nospace -F __gvfs_multiple_uris gvfs-monitor-file +complete -o nospace -F __gvfs_multiple_uris gvfs-move +complete -o nospace -F __gvfs_multiple_uris gvfs-open +complete -o nospace -F __gvfs_multiple_uris gvfs-rename +complete -o nospace -F __gvfs_multiple_uris gvfs-rm +complete -o nospace -F __gvfs_multiple_uris gvfs-save +complete -o nospace -F __gvfs_multiple_uris gvfs-set-attribute +complete -o nospace -F __gvfs_multiple_uris gvfs-trash +complete -o nospace -F __gvfs_multiple_uris gvfs-tree -- cgit v1.2.1