1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-05-20 06:56:05 +02:00
zsh/Completion/Unix/Command/_gphoto2

97 lines
5.0 KiB
Plaintext

#compdef gphoto2
local curcontext="$curcontext" ret=1
local -a state line values expl
typeset -A opt_args
_arguments -s -C \
'(-)'{-\?,--help}'[display help information]' \
'(-)'{-h,--usage}'[display a short usage message]' \
'--debug[turn on debugging]' \
'--debug-loglevel=[set debug level]:debug level:(error debug data all)' \
'--debug-logfile=[name of file to write debug info to]:file:_files' \
'(-q --quiet)'{-q,--quiet}'[quiet output]' \
'--hook-script=[hook script to call after downloads, captures, etc.]:file:_files' \
'--stdout[send file to stdout]' \
'--stdout-size[print filesize before data]' \
'--auto-detect[list auto-detected cameras]' \
'--show-exif=[show EXIF information of JPEG images]:range' \
'--show-info=[show image information, like width, height, and capture time]:range' \
'--summary[summary of camera status]' \
'--manual[camera driver manual]' \
'--about[show information about the camera driver]' \
'--storage-info[show storage information]' \
'--shell[start the gphoto2 shell]' \
'(-)'{-v,--version}'[display version and exit]' \
'--list-cameras[list supported camera models]' \
'--list-ports[list supported port devices]' \
'(-a --abilities)'{-a,--abilities}'[display camera abilities]' \
'--port=[specify port device]:port:->ports' \
'--speed=[specify serial transfer speed]:speed' \
'--camera=[specify camera model]:camera model:->models' \
'--usbid=[override USB IDs (expert only)]:usbid' \
'--list-config[list configuration tree]' \
'--list-all-config[dump full configuration tree]' \
'--get-config=[get configuration value]:string' \
'--set-config=[set configuration value or index in choices]:string' \
'--set-config-index=[set configuration value index in choices]:string' \
'--set-config-value=[set configuration value]:string' \
'--config[start curses configuration menu]' \
'--reset[reset device port]' \
'--keep[keep images on camera after capturing]' \
'--keep-raw[keep the RAW images on the camera with --capture-image-and-download]' \
'--no-keep[remove images from camera after capturing]' \
'--wait-event=-[wait for event from camera]::count' \
'--wait-event-and-download=-[wait for event from camera and download new images]::count' \
'--capture-preview[capture a quick preview]' \
'--show-preview[capture a quick preview and display using ASCII art]' \
'(-B --bulb)'{-B,--bulb=}'[set bulb exposure time]:exposure time (seconds)' \
'(-F --frames)'{-F,--frames=}'[set number of frames to capture]:frames [unlimited]' \
'(-I --interval)'{-I,--interval=}'[set capture interval in seconds]:interval (seconds)' \
'--reset-interval[reset capture interval on signal]' \
'--capture-image[capture an image]' \
'--trigger-capture[trigger capture of an image]' \
'--capture-image-and-download[capture an image and download it]' \
'--capture-movie=-[capture a movie]:count or seconds' \
'--capture-sound[capture an audio clip]' \
'--capture-tethered=-[wait for shutter release on the camera and download]::count' \
'(-l --list-folders)'{-l,--list-folders}'[list folders in folder]' \
'(-L --list-files)'{-L,--list-files}'[list files in folder]' \
'(-m --mkdir)'{-m,--mkdir=}'[create a directory]:directory' \
'(-r --rmdir)'{-r,--rmdir=}'[remove a directory]:directory' \
'(-n --num-files)'{-n,--num-files}'[display number of files]' \
'(-p --get-file)'{-p,--get-file=}'[get files given in range]:range' \
'(-P --get-all-files)'{-P,--get-all-files}'[get all files from folder]' \
'(-t --get-thumbnail)'{-t,--get-thumbnail=}'[get thumbnails given in range]:range' \
'(-T --get-all-thumbnails)'{-T,--get-all-thumbnails}'[get all thumbnails from folder]' \
'--get-metadata=[get metadata given in range]:range' \
'--get-all-metadata[get all metadata from folder]' \
'--upload-metadata=[upload metadata for file]:string' \
'--get-raw-data=[get raw data given in range]:range' \
'--get-all-raw-data[get all raw data from folder]' \
'--get-audio-data=[get audio data given in range]:range' \
'--get-all-audio-data[get all audio data from folder]' \
'(-d --delete-file)'{-d,--delete-file=}'[delete files in given range]:range' \
'(-D --delete-all-files)'{-D,--delete-all-files}'[delete all files in folder]' \
'(-u --upload-file)'{-u,--upload-file=}'[upload a file to camera]:file:_files' \
'--filename=[specify pattern to save file as]:pattern:_date_formats' \
'(-f --folder)'{-f,--folder=}'[specify camera folder]:folder [/]' \
'(-R --recurse --no-recurse)'{-R,--recurse}'[recursion (default for download)]' \
'(-R --recurse)--no-recurse[no recursion (default for deletion)]' \
'--new[process new files only]' \
'--force-overwrite[overwrite files without asking]' \
'--skip-existing[skip files that already exist on local filesystem]' && ret=0
case $state in
models)
_wanted models expl 'camera model' compadd \
${${${(f)"$(_call_program models $words[1] --list-cameras)"}[3,-1]#*\"}%%\"*} && ret=0
;;
ports)
values=( ${${${(f)"$(gphoto2 --list-ports)"}[4,-1]/:/\\:}/ ##/:} )
_describe -t ports 'port' values
;;
esac
return ret