about summary refs log tree commit diff
path: root/Completion/BSD/Type/_bsd_disks
blob: 986d36e4574315e2f5d71674136664bf259d81a1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#autoload
# disk device names on BSDs
local -a disks

case $OSTYPE in
  freebsd*)
    disks=( ${${(M)${(f)"$(geom disk list)"}\:#Geom name\:*}#*\: } )
  ;;
  dragonfly*)
    disks=( $(sysctl -n kern.disks) )
  ;;
  openbsd*)
    disks=( ${${(s.,.)"$(sysctl -n hw.disknames)"}%\:*} )
  ;;
  netbsd*)
    disks=( $(sysctl -n hw.disknames) )
  ;;
esac

if (( $#disks )); then
  local expl
  _wanted disk-devices expl 'disk device' compadd "$@" $disks
  return
fi

return 1