_picloud()
{
        local cur prev opts cmds
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        prev="${COMP_WORDS[COMP_CWORD-1]}"
        opts="files realtime volume setup"

        case "${prev}" in
                files)
                        cmds="get get-md5 delete list put sync-from-cloud sync-to-cloud"
                        COMPREPLY=($(compgen -W "${cmds}" -- ${cur}))
                        return 0
                ;;
                realtime)
                        cmds="request release list"
                        COMPREPLY=($(compgen -W "${cmds}" -- ${cur}))
                        return 0
                ;;
                volume)
                        cmds="list create sync delete ls rm"
                        COMPREPLY=($(compgen -W "${cmds}" -- ${cur}))
                        return 0
                ;;
                setup)
                        cmds=""
                        COMPREPLY=($(compgen -W "${cmds}" -- ${cur}))
                        return 0
                ;;
                *)
                ;;
        esac
        COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
        return 0
}
complete -F _picloud picloud

