[Glibc-bsd-commits] r3704 - in branches/squeeze/zfsutils/debian: . local local/bash_completion.d
Robert Millan
rmh at alioth.debian.org
Sun Sep 18 15:24:00 UTC 2011
Author: rmh
Date: 2011-09-18 15:23:59 +0000 (Sun, 18 Sep 2011)
New Revision: 3704
Added:
branches/squeeze/zfsutils/debian/local/
branches/squeeze/zfsutils/debian/local/bash_completion.d/
branches/squeeze/zfsutils/debian/local/bash_completion.d/zfsutils
Modified:
branches/squeeze/zfsutils/debian/changelog
branches/squeeze/zfsutils/debian/zfsutils.install
branches/squeeze/zfsutils/debian/zfsutils.zfs.init
Log:
Backport a few improvements from wheezy (see #637020).
Modified: branches/squeeze/zfsutils/debian/changelog
===================================================================
--- branches/squeeze/zfsutils/debian/changelog 2011-09-16 20:17:10 UTC (rev 3703)
+++ branches/squeeze/zfsutils/debian/changelog 2011-09-18 15:23:59 UTC (rev 3704)
@@ -1,3 +1,13 @@
+zfsutils (8.1-4+squeeze1) stable; urgency=low
+
+ * Set "X-Start-Before: checkroot" so that boot doesn't break when
+ fstab relies on ZFS volumes. (Closes: #635627)
+ * Set "X-Stop-After: umountfs" to ensure ZVOLs are no longer in use
+ when "zfs volfini" is called.
+ * Add bash_completion script (stolen from zfs-fuse).
+
+ -- Robert Millan <rmh at debian.org> Mon, 08 Aug 2011 13:35:06 +0000
+
zfsutils (8.1-4) unstable; urgency=low
* Create a /boot/zfs/ directory in zfsutils-udeb, so that zpool.cache
Added: branches/squeeze/zfsutils/debian/local/bash_completion.d/zfsutils
===================================================================
--- branches/squeeze/zfsutils/debian/local/bash_completion.d/zfsutils (rev 0)
+++ branches/squeeze/zfsutils/debian/local/bash_completion.d/zfsutils 2011-09-18 15:23:59 UTC (rev 3704)
@@ -0,0 +1,232 @@
+# Copyright (c) 2010, Aneurin Price <aneurin.price at gmail.com>
+
+# 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
Modified: branches/squeeze/zfsutils/debian/zfsutils.install
===================================================================
--- branches/squeeze/zfsutils/debian/zfsutils.install 2011-09-16 20:17:10 UTC (rev 3703)
+++ branches/squeeze/zfsutils/debian/zfsutils.install 2011-09-18 15:23:59 UTC (rev 3704)
@@ -1,2 +1,3 @@
cddl/sbin/zpool/zpool /sbin
cddl/sbin/zfs/zfs /sbin
+debian/local/bash_completion.d/zfsutils /etc/bash_completion.d
Modified: branches/squeeze/zfsutils/debian/zfsutils.zfs.init
===================================================================
--- branches/squeeze/zfsutils/debian/zfsutils.zfs.init 2011-09-16 20:17:10 UTC (rev 3703)
+++ branches/squeeze/zfsutils/debian/zfsutils.zfs.init 2011-09-18 15:23:59 UTC (rev 3704)
@@ -3,6 +3,8 @@
# Provides: zvol zfs
# Required-Start:
# Required-Stop:
+# X-Start-Before: checkroot
+# X-Stop-After: umountfs
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Start/stop ZFS subsystem.
More information about the Glibc-bsd-commits
mailing list