#compdef metaflac

local _metaflac_opts _metaflac_shorts _metaflac_opers
typeset -A opt_args
function _metaflac_tags () {
    echo "\n\nBEEP - $line - BEEP\n\n"
}
_metaflac_opts=( 
    '--preserve-modtime' 
    '--with-filename[prefix output with filename]' 
    '--no-filename' 
    '--no-utf8-convert'
    '--dont-use-padding[always rewrite the file]' 
)
_metaflac_shorts=(
    '--show-md5sum'
    '--show-min-blocksize'
    '--show-max-blocksize'
    '--show-min-framesize'
    '--show-max-framesize'
    '--show-sample-rate'
    '--show-channels'
    '--show-bps'
    '--show-total-samples'
    '--show-vendor-tag'
    '--show-tag=:FLAC tags:_metaflac_tags'
    '--remove-tag=:FLAC tags: '
    '--remove-first-tag=:FLAC tags: '
    '--remove-all-tags'
    '--set-tag=:FLAC tag and value: '
    '--import-tags-from=:flat file:_files'
    '--export-tags-to=:new file: '
    '--import-cuesheet-from=:file:_files'
    '--export-cuesheet-to=:new file: '
    '--add-replay-gain'
    '--add-seekpoint=:: '
    '--add-padding=length'

)
_metaflac_opers=(
    '--block-number=:: '
    '--block-type=:: '
    '--except-block-type=:: '
    '--application-data-format=:: '
    '--list'
    '--remove'
    '--remove-all'
    '--merge-padding'
    '--sort-padding'
)

_arguments "$_metaflac_opts[@]" \
    "*:FLAC file:_files -g \*.flac\(-.\)" \
    - "shortcuts" \
    "$_metaflac_shorts[@]" \
    - "(operations)" \
    "$_metaflac_opers[@]" \
    && return 0

