# bash completion for ImageMagick                          -*- shell-script -*-

_ImageMagick()
{
    case $prev in
        -channel)
            COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \
                Matte Cyan Magenta Yellow Black' -- "$cur" ) )
            return 0
            ;;
        -colormap)
            COMPREPLY=( $( compgen -W 'shared private' -- "$cur" ) )
            return 0
            ;;
        -colorspace)
            COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \
                XYZ YCbCr YIQ YPbPr YUV CMYK' -- "$cur" ) )
            return 0
            ;;
        -compose)
            COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \
                Minus Add Subtract Difference Multiply Bumpmap\
                Copy CopyRed CopyGreen CopyBlue CopyOpacity' -- "$cur" ) )
            return 0
            ;;
        -compress)
            COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \
                Lossless LZW RLE Zip' -- "$cur" ) )
            return 0
            ;;
        -dispose)
            COMPREPLY=( $( compgen -W 'Undefined None Background Previous' \
                -- "$cur" ) )
            return 0
            ;;
        -encoding)
            COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \
                AdobeStandard AppleRoman BIG5 GB2312 Latin2 \
                None SJIScode Symbol Unicode Wansung' -- "$cur"))
            return 0
            ;;
        -endian)
            COMPREPLY=( $( compgen -W 'MSB LSB' -- "$cur" ) )
            return 0
            ;;
        -filter)
            COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \
                Hanning Hamming Blackman Gaussian Quadratic \
                Cubic Catrom Mitchell Lanczos Bessel Sinc' -- "$cur" ) )
            return 0
            ;;
        -format)
            COMPREPLY=( $( compgen -W "$( convert -list format | awk \
                '/ [r-][w-][+-] / { sub("[*]$","",$1); print tolower($1) }' )" \
                -- "$cur" ) )
            return 0
            ;;
        -gravity)
            COMPREPLY=( $( compgen -W 'Northwest North NorthEast \
                West Center East SouthWest South SouthEast' -- "$cur" ) )
            return 0
            ;;
        -intent)
            COMPREPLY=( $( compgen -W 'Absolute Perceptual \
                Relative Saturation' -- "$cur" ) )
            return 0
            ;;
        -interlace)
            COMPREPLY=( $( compgen -W 'None Line Plane Partition' -- "$cur" ) )
            return 0
            ;;
        -limit)
            COMPREPLY=( $( compgen -W 'Disk File Map Memory' -- "$cur" ) )
            return 0
            ;;
        -list)
            COMPREPLY=( $( compgen -W 'Delegate Format Magic Module Resource \
                Type' -- "$cur" ) )
            return 0
            ;;
        -map)
            COMPREPLY=( $( compgen -W 'best default gray red green blue' \
                -- "$cur" ) )
            _filedir
            return 0
            ;;
        -noise)
            COMPREPLY=( $( compgen -W 'Uniform Gaussian Multiplicative \
                Impulse Laplacian Poisson' -- "$cur" ) )
            return 0
            ;;
        -preview)
            COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \
                Saturation Brightness Gamma Spiff \
                Dull Grayscale Quantize Despeckle \
                ReduceNoise AddNoise Sharpen Blur \
                Treshold EdgeDetect Spread Shade \
                Raise Segment Solarize Swirl Implode \
                Wave OilPaint CharcoalDrawing JPEG' -- "$cur" ) )
            return 0
            ;;
        -mask|-profile|-texture|-tile|-write)
            _filedir
            return 0
            ;;
        -type)
            COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette PaletteMatte \
                TrueColor TrueColorMatte ColorSeparation ColorSeparationlMatte \
                Optimize' -- "$cur" ) )
            return 0
            ;;
        -units)
            COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \
                PixelsPerCentimeter' -- "$cur" ) )
            return 0
            ;;
        -virtual-pixel)
            COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' -- "$cur" ) )
            return 0
            ;;
        -visual)
            COMPREPLY=( $( compgen -W 'StaticGray GrayScale StaticColor \
                PseudoColor TrueColor DirectColor defaut visualid' -- "$cur" ))
            return 0
            ;;
    esac

    return 1
}

_convert()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+adjoin +append +compress \
            +contrast +debug +dither +endian +gamma +label +map \
            +mask +matte +negate +noise +page +raise +render \
            +write' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _convert convert

_mogrify()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \
            +endian +gamma +label +map +mask +matte +negate +page \
            +raise' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _mogrify mogrify

_display()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \
            +endian +gamma +label +map +matte +negate +page \
            +raise +write' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _display display

_animate()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug +dither +gamma +map +matte' \
            -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _animate animate

_identify()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _identify identify

_montage()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+adjoin +compress +debug +dither \
            +endian +gamma +label +matte +page' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _montage montage

_composite()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+compress +debug +dither +endian +label \
            +matte +negate +page +write' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _composite composite

_compare()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _compare compare

_conjure()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _conjure conjure

_import()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _import import

_stream()
{
    local cur prev words cword
    _init_completion || return

    _ImageMagick && return

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
    elif [[ "$cur" == +* ]]; then
        COMPREPLY=( $( compgen -W '+debug' -- "$cur" ) )
    else
        _filedir
    fi
} &&
complete -F _stream stream

# ex: ts=4 sw=4 et filetype=sh
