Package: pmount
Version: 0.9.23-2
Severity: normal
Tags: patch

After a device is pmounted, pumount supports unmounting both by device
path, and my mounted path, i.e.
pumount /dev/sdb1
or
pumount /media/disk

But tab completion only supports the former option. It would be nice if
tab completion supported the latter as well.

This modification to debian/completion/pmount makes completion by the latter 
path work as well for me:

87c87
<       devices="$( grep $mdir /proc/mounts | sed -e 's,.*/$mdir/,,;s,\ 
.*,,;s,\(.*\),\1\n/dev/\1,;s,/dev//dev,/dev,' )"
---
>       devices="$( grep $mdir /proc/mounts | sed -e 's,.*/$mdir/,,;s,\ 
> .*,,;s,\(.*\),\1\n/dev/\1,;s,/dev//dev,/dev,';grep $mdir /proc/mounts | sed 
> -e 's,.*\($mdir/[^ ]*\).*,\1,' )"

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.1.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages pmount depends on:
ii  libblkid1  2.20.1-5
ii  libc6      2.13-33

pmount recommends no packages.

Versions of packages pmount suggests:
pn  cryptsetup  <none>

-- Configuration Files:
/etc/bash_completion.d/pmount changed:
have pmount &&
_pmount() {
   local cur prev options devices fslist
   options=' -r --read-only -w --read-write -s --sync -A --noatime -e --exec \
   -t filesystem --type filesystem -c charset --charset charset -u umask \
   --umask umask --dmask dmask --fmask fmask -p file --passphrase file \
   -h --help -d --debug -V --version'
   fslist=' ascii cp1250 cp1251 cp1255 cp437 cp737 cp775 cp850 cp852 cp855 
cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp932 cp936 cp949 
cp950 euc-jp iso8859-1 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 
iso8859-4 iso8859-5 iso8859-6 iso8859-7 iso8859-9 koi8-r koi8-ru koi8-u utf8'
   COMPREPLY=()
   cur=${COMP_WORDS[COMP_CWORD]}
   prev=${COMP_WORDS[COMP_CWORD-1]}
   case "$prev" in
      -@(t|-type))
      COMPREPLY=( $( grep "^[[:space:]]$cur" /proc/filesystems ) )
      return 0
      ;;
      -@(c|-charset))
      COMPREPLY=( $( compgen -W "$fslist" -- $cur ) )
      return 0
      ;;
      -@(u|d|-umask|-dmask))
      COMPREPLY=( ${cur}0 ${cur}1 ${cur}2 ${cur}3 ${cur}4 ${cur}5 ${cur}6 
${cur}7 )
      return 0
      ;;
      -@(p|-passphrase))
      _filedir
      return 0
      ;;
   esac
        if [[ "$cur" == -* ]]; then
                COMPREPLY=( $( compgen -W "$options" -- $cur ) )
        else
    devices="$( command ls $(grep -v '^[[:space:]]*#' /etc/pmount.allow ) 
$(grep 1 /sys/block/*/removable | sed -e 
's,/sys/block/,/dev/,;s,/removable:1,*,') 2>/dev/null | sort -u | sed -e 
's,\(^/dev/\)\(.*\),\1\2 \2,' )"
                COMPREPLY=( $( compgen -W "$devices" -- $cur ) )
        fi
        return 0
}
have pumount &&
_pumount() {
   local cur prev options devices mdir
   mdir="$(readlink -f /media)"
   options=' -l --luks-force -h --help -d --debug --version'
   COMPREPLY=()
   cur=${COMP_WORDS[COMP_CWORD]}
   prev=${COMP_WORDS[COMP_CWORD-1]}
   if [[ "$cur" == -* ]]; then
      COMPREPLY=( $( compgen -W "$options" -- $cur ) )
   else
      devices="$( grep $mdir /proc/mounts | sed -e 's,.*/$mdir/,,;s,\ 
.*,,;s,\(.*\),\1\n/dev/\1,;s,/dev//dev,/dev,';grep $mdir /proc/mounts | sed -e 
's,.*\($mdir/[^ ]*\).*,\1,' )"
      COMPREPLY=( $( compgen -W "$devices" -- $cur ) )
   fi
   return 0
}
[ "$have" ] && complete -F _pmount $filenames pmount
[ "$have" ] && complete -F _pumount $filenames pumount


-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to