Re: [PATCH 02/10] bash-completion: disk-utils

Sami Kerola
2013-04-01T17:00:31Z

On Thu, Mar 28, 2013 at 10:54:14AM +0100, Karel Zak wrote:
> On Wed, Mar 27, 2013 at 10:07:44PM +0000, Sami Kerola wrote:
> > diff --git a/shell-completion/mkfs b/shell-completion/mkfs
> > new file mode 100644
> > index 0000000..ee6a26b
> > --- /dev/null
> > +++ b/shell-completion/mkfs
> > @@ -0,0 +1,25 @@
> > +_mkfs_module()
> > +{
> > + local cur prev OPTS DEVS
> > + COMPREPLY=()
> > + cur="${COMP_WORDS[COMP_CWORD]}"
> > + prev="${COMP_WORDS[COMP_CWORD-1]}"
> > + case $prev in
> > + '-t'|'--type')
> > + FSTYPES=$(for I in $(\ls /sbin/mkfs.* /usr/sbin/mkfs.* 2>/dev/null); do echo ${I##*mkfs.}; done)
>
> The /sbin and /usr/sbin are the same directories on many systems, so you
> need to de-duplicate the list or use only one directory (I suggest /sbin).

The compgen will remove duplicates. Perhaps most systems now a days has
/sbin -> /usr/sbin symlink, but because that cannot be guaranteed I would
rather let the later command to sort out duplicates than being over
clever about what is necessary.

> > diff --git a/shell-completion/mkswap b/shell-completion/mkswap
> > new file mode 100644
> > index 0000000..c847aa9
> > --- /dev/null
> > +++ b/shell-completion/mkswap
> > @@ -0,0 +1,36 @@
> > +_mkswap_module()
> > +{
> > + local cur prev OPTS
> > + COMPREPLY=()
> > + cur="${COMP_WORDS[COMP_CWORD]}"
> > + prev="${COMP_WORDS[COMP_CWORD-1]}"
> > + case $prev in
> > + '-p'|'--pagesize')
> > + COMPREPLY=( $(compgen -W "bytes" -- $cur) )
> > + return 0
> > + ;;
> > + '-L'|'--label')
> > + COMPREPLY=( $(compgen -W "label" -- $cur) )
> > + return 0
> > + ;;
> > + '-v'|'--swapversion')
> > + COMPREPLY=( $(compgen -W "1" -- $cur) )
> > + return 0
> > + ;;
> > + '-U'|--uuid)
> > + COMPREPLY=( $(compgen -W "$(lsblk -n --output uuid)" -- $cur) )
>
> The -U|--uuid is not a device identifier here, it's UUID you want to
> use for the new swap superblock. So ask lsblk does not make sense.
> (It will generate duplicate UUIDS.)
>
> If you do not specify -U then mkswap will generate a new.

Fixed.

--
Sami Kerola