From b981c8a4d8136aad5f840869084eb6008ca4954a Mon Sep 17 00:00:00 2001 From: Antonio Russo Date: Sun, 1 Jul 2018 08:25:21 -0400 Subject: [PATCH 1/1] Use upstream bash completion file Signed-off-by: Antonio Russo --- debian/copyright | 4 - debian/copyright.cme | 4 - debian/rules | 4 + .../usr/share/bash-completion/completions/zfs | 232 ------------------ debian/zfsutils-linux.install | 1 + 5 files changed, 5 insertions(+), 240 deletions(-) delete mode 100644 debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs diff --git a/debian/copyright b/debian/copyright index 373249ce..1a17e59a 100644 --- a/debian/copyright +++ b/debian/copyright @@ -200,10 +200,6 @@ Copyright: 2013, The Debian po file translators. License: CDDL-1.0 -Files: debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs -Copyright: 2010, Aneurin Price -License: Expat - Files: etc/init.d/zfs-*.in Copyright: 2016, Carlo Landmeter diff --git a/debian/copyright.cme b/debian/copyright.cme index 0fde0e2f..6195f36e 100644 --- a/debian/copyright.cme +++ b/debian/copyright.cme @@ -158,10 +158,6 @@ Copyright: OPENSOLARIS.LICENSE README.markdown License: UNKNOWN Please fill license UNKNOWN from header of debian/rules -Files: debian/tree/zfsutils-linux/usr/share/bash-completion/* -Copyright: 2010, 2013, Aneurin Price -License: Expat - Files: include/* Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates. License: CDDL diff --git a/debian/rules b/debian/rules index 75f58fbc..3fc29516 100755 --- a/debian/rules +++ b/debian/rules @@ -62,6 +62,9 @@ override_dh_auto_install: @# Install the utilities. $(MAKE) install DESTDIR='$(CURDIR)/debian/tmp' + # Use upstream's bash completion + install -D -t '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/' \ + '$(CURDIR)/contrib/bash_completion.d/zfs' # Move from bin_dir to /usr/sbin # Remove suffix (.py) as per policy 10.4 - Scripts @@ -114,6 +117,7 @@ override_dh_auto_install: chmod a-x $(CURDIR)/debian/tmp/etc/zfs/zfs-functions chmod a-x $(CURDIR)/debian/tmp/etc/default/zfs + chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs' override_dh_dkms: dh_dkms -V $(DEB_VERSION_UPSTREAM) diff --git a/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs b/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs deleted file mode 100644 index 1b9428bf..00000000 --- a/debian/tree/zfsutils-linux/usr/share/bash-completion/completions/zfs +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright (c) 2010, Aneurin Price - -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation -# files (the "Software"), to deal in the Software without -# restriction, including without limitation the rights to use, -# copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following -# conditions: - -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. - -__zfs_get_commands() -{ - zfs 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq -} - -__zfs_get_properties() -{ - zfs get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all -} - -__zfs_get_editable_properties() -{ - zfs get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' -} - -__zfs_get_inheritable_properties() -{ - zfs get 2>&1 | awk '$3 == "YES" {print $1}' -} - -__zfs_list_datasets() -{ - zfs list -H -o name -} - -__zfs_list_filesystems() -{ - zfs list -H -o name -t filesystem -} - -__zfs_list_snapshots() -{ - zfs list -H -o name -t snapshot -} - -__zfs_list_volumes() -{ - zfs list -H -o name -t volume -} - -__zfs_argument_chosen() -{ - for word in $(seq $((COMP_CWORD-1)) -1 2) - do - local prev="${COMP_WORDS[$word]}" - for property in $@ - do - if [ "x$prev" = "x$property" ] - then - return 0 - fi - done - done - return 1 -} - -__zfs_complete_ordered_arguments() -{ - local list1=$1 - local list2=$2 - local cur=$3 - local extra=$4 - if __zfs_argument_chosen $list1 - then - COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur")) - else - COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur")) - fi -} - -__zfs_complete() -{ - local cur prev cmd cmds - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - cmd="${COMP_WORDS[1]}" - cmds=$(__zfs_get_commands) - - if [ "${prev##*/}" = "zfs" ] - then - COMPREPLY=($(compgen -W "$cmds -?" -- "$cur")) - return 0 - fi - - case "${cmd}" in - clone) - __zfs_complete_ordered_arguments "$(__zfs_list_snapshots)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur - return 0 - ;; - get) - __zfs_complete_ordered_arguments "$(__zfs_get_properties)" "$(__zfs_list_datasets)" "$cur" "-H -r -p" - return 0 - ;; - inherit) - __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_list_datasets)" $cur - return 0 - ;; - list) - if [ "x$prev" = "x-o" ] - then - COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "${cur##*,}")) - local existing_opts=$(expr "$cur" : '\(.*,\)') - if [ ! "x$existing_opts" = "x" ] - then - COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" ) - fi - else - COMPREPLY=($(compgen -W "$(__zfs_list_datasets) -H -r -o" -- "$cur")) - fi - return 0 - ;; - promote) - COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) - return 0 - ;; - rollback|send) - COMPREPLY=($(compgen -W "$(__zfs_list_snapshots)" -- "$cur")) - return 0 - ;; - snapshot) - COMPREPLY=($(compgen -W "$(__zfs_list_filesystems) $(__zfs_list_volumes)" -- "$cur")) - return 0 - ;; - set) - __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur - return 0 - ;; - *) - COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur")) - return 0 - ;; - esac - -} - -__zpool_get_commands() -{ - zpool 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq -} - -__zpool_get_properties() -{ - zpool get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all -} - -__zpool_get_editable_properties() -{ - zpool get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' -} - -__zpool_list_pools() -{ - zpool list -H -o name -} - -__zpool_complete() -{ - local cur prev cmd cmds - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - cmd="${COMP_WORDS[1]}" - cmds=$(__zpool_get_commands) - - if [ "${prev##*/}" = "zpool" ] - then - COMPREPLY=($(compgen -W "$cmds" -- "$cur")) - return 0 - fi - - case "${cmd}" in - get) - __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur - return 0 - ;; - import) - if [ "x$prev" = "x-d" ] - then - _filedir -d - else - COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur")) - fi - return 0 - ;; - set) - __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur - return 0 - ;; - add|attach|clear|create|detach|offline|online|remove|replace) - local pools="$(__zpool_list_pools)" - if __zfs_argument_chosen $pools - then - _filedir - else - COMPREPLY=($(compgen -W "$pools" -- "$cur")) - fi - return 0 - ;; - *) - COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur")) - return 0 - ;; - esac - -} - -complete -F __zfs_complete zfs -complete -o filenames -F __zpool_complete zpool diff --git a/debian/zfsutils-linux.install b/debian/zfsutils-linux.install index 18016822..d200257b 100644 --- a/debian/zfsutils-linux.install +++ b/debian/zfsutils-linux.install @@ -23,6 +23,7 @@ usr/lib/zfs-linux/zpool.d/ usr/sbin/arc_summary usr/sbin/arcstat usr/sbin/dbufstat +usr/share/bash-completion/completions usr/share/man/man1/zhack.1 usr/share/man/man5/ usr/share/man/man8/fsck.zfs.8 -- 2.39.2