#compdef fw_update

_arguments -s -S -A "-*" \
  '(*)-a[install or update firmware for all drivers]' \
  '-d[delete drivers instead of adding them]' \
  '-D+[specify location of dmesg output used to determine needed firmware]:path [/var/run/dmesg.boot]:_files' \
  '-F[download firmware only]' \
  '-l[list drivers without installing]' \
  '-n[dry run]' \
  '-p+[use the firmware at specified path]: : _alternative
    "urls\:url\:_urls"
    "directories\:path\:_directories"' \
  '*-v[verbose output]' \
  '(-a)*:driver:compadd $(_call_program drivers $words[1] -l)'
