diff options
author | Clint Adams <clint@users.sourceforge.net> | 2007-09-30 11:39:54 +0000 |
---|---|---|
committer | Clint Adams <clint@users.sourceforge.net> | 2007-09-30 11:39:54 +0000 |
commit | 855d0d2d66af027087143b3a12a205546ace85ab (patch) | |
tree | ef1eecb085995a3575bf9f1bf9640e7b2cbb22c3 /Completion/Linux | |
parent | 75bf795d602decda0137e12540c881db25bffb4a (diff) | |
download | zsh-855d0d2d66af027087143b3a12a205546ace85ab.tar.gz zsh-855d0d2d66af027087143b3a12a205546ace85ab.tar.xz zsh-855d0d2d66af027087143b3a12a205546ace85ab.zip |
23863: completion for lsusb.
Diffstat (limited to 'Completion/Linux')
-rw-r--r-- | Completion/Linux/Command/_lsusb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Completion/Linux/Command/_lsusb b/Completion/Linux/Command/_lsusb new file mode 100644 index 000000000..37701acd5 --- /dev/null +++ b/Completion/Linux/Command/_lsusb @@ -0,0 +1,31 @@ +#compdef lsusb + +local context state line usbidsline vendorid pair +typeset -A opt_args + +_arguments \ + '(-v --verbose)'{-v,--verbose}'[be verbose]' \ + '-s:bus and/or devnum to show:' \ + '-d:vendor and product to show:->vendorproduct' \ + '-D:device to show:_files' \ + '-t[dump the physical USB device hierarchy as a tree]' \ + '(-V --version)'{-V,--version}'[print version info and exit]' && return 0 + + if [[ ${+_lsusb_vendors} -eq 0 ]]; then + typeset -A _lsusb_vendors _lsusb_devices + while IFS="" read usbidsline + do + case "$usbidsline" in + ((#b)([0-9a-f]##) ##(*)) + vendorid="$match[1]" + _lsusb_vendors[$vendorid]="$match[2]" + ;; + ( (#b)([0-9a-f]##) ##(*))) + pair="$vendorid:$match[1]" + _lsusb_devices[${pair}]="$match[2]" + ;; + esac + done < <(zcat /var/lib/usbutils/usb.ids) +fi + +compadd -k _lsusb_devices |