# bin/lazy zsh completion script generated by CLIFramework
# Web: http://github.com/c9s/php-CLIFramework
# THIS IS AN AUTO-GENERATED FILE, PLEASE DON'T MODIFY THIS FILE DIRECTLY.
___bin_lazymeta () {
  local curcontext=$curcontext state line ret=1
  typeset -A opt_args
  typeset -A val_args
  declare -a lines
  declare -a args
  local ret=1
  local desc=$1
  local cmdsig=$2
  local valtype=$3
  local pos=$4
  local completion=$5
  output=$(bin/lazy meta --zsh $cmdsig $valtype $pos $completion)
  lines=("${(@f)output}")
  output_type=${lines[1]}
  if [[ $lines[1] == "#groups" ]] ; then
      eval $output
      for tag in ${(k)groups} ; do
          complete_values=(${(z)${groups[$tag]}})
          label=${labels[$tag]}
          if [[ -z $label ]] ; then
              label=$tag
          fi
          _describe -t $tag $label complete_values && ret=0
      done
  elif [[ $lines[1] == "#values" ]] ; then
      args=(${lines:1})
     _values "$desc" ${=args} && ret=0
  elif [[ $lines[1] == "#descriptions" ]] ; then
      args=(${lines:1})
      _describe "$desc" args && ret=0
  else
     _values "$desc" ${=lines} && ret=0
  fi
  return ret
}
_bin_lazy() {
local curcontext=$curcontext state line
typeset -A opt_args
local ret=1
  _arguments -C \
    '(-v --verbose)'{-v,--verbose}'[Print verbose message.]' \
    '(-d --debug)'{-d,--debug}'[Print debug message.]' \
    '(-q --quiet)'{-q,--quiet}'[Be quiet.]' \
    '(-h --help)'{-h,--help}'[Show help.]' \
    '--version[Show version.]' \
    '(-p --profile)'{-p,--profile}'[Display timing and memory usage information.]' \
    '--log-path[The path of a log file.]' \
    '--no-interact[Do not ask any interactive question.]' \
    ': :->cmds' \
    '*:: :->option-or-argument' \
     && return
  case $state in
    (cmds)
  local commands; commands=(
    help:'Show help message of a command'
    zsh:'This function generate a zsh-completion script automatically'
    bash:'This command generate a bash completion script automatically'
    meta:'Set, get or list meta.'
    compile:'compile current source into Phar format library file.'
    archive:'Build executable phar file from composer.json'
    github:build-topics:'Build topic classes from the wiki of a GitHub Project.'
    init:'initialize your lazyrecord structures.'
    build-conf:'Build configuration file.'
    conf:'Build configuration file.'
    schema:'schema command.'
    basedata:'insert basedata into datasource.'
    sql:'build sql and insert into database.'
    diff:'Compare the defined schemas with the tables in database.'
    migrate:'Database migration commands'
    version:'Show database version'
    db:'database related commands.'
    data-source:'data source related commands.'
  )
  _describe -t commands 'command' commands && ret=0
    ;;
    (option-or-argument)
      curcontext=${curcontext%:*}-$line[1]:
      case $line[1] in
        (help)
            _arguments -w -S -s \
              '--dev[Show development commands]' \
               && ret=0
        
        ;;
        (zsh)
            _arguments -w -S -s \
              '--bind=[bind complete to command]' \
              '--program=[programe name]' \
               && ret=0
        
        ;;
        (bash)
            _arguments -w -S -s \
              '--bind=[bind complete to command]' \
              '--program=[programe name]' \
               && ret=0
        
        ;;
        (meta)
            _arguments -w -S -s \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" meta opt data-source valid-values}' \
               && ret=0
        
        ;;
        (compile)
            _arguments -w -S -s \
              '--classloader[embed classloader source file]' \
              '--bootstrap[bootstrap or executable source file]' \
              '--executable[is a executable script ?]' \
              '--lib=[library path]' \
              '--include=[include path]' \
              '--exclude=[exclude pattern]' \
              '--output=[output]' \
              '(-c --compress)'{-c,--compress}'[phar file compress type\: gz, bz2]' \
              '--no-compress[do not compress phar file.]' \
               && ret=0
        
        ;;
        (archive)
            _arguments -w -S -s \
              '(-d --working-dir)'{-d,--working-dir=}'[If specified, use the given directory as working directory.]:dir:_directories' \
              '(-c --composer)'{-c,--composer=}'[The composer.json file. If --working-dir is ignored, dirname of the composer.json will be used.]:file:_files' \
              '--vendor=[Vendor directory name]' \
              '--bootstrap[bootstrap or executable php file]:file:_files' \
              '--executable[make the phar file executable]:bool' \
              '(-c --compress)'{-c,--compress}'[compress type\: gz, bz2]::("gz" "bz2")' \
              '--no-compress[do not compress phar file.]' \
              '--add=[add a path respectively]' \
              '--exclude=[exclude pattern]' \
              '--no-classloader[do not embed a built-in classloader in the generated phar file.]' \
              '--app-bootstrap[Include CLIFramework bootstrap script.]' \
              ':phar-file' \
               && ret=0
        
        ;;
        (github:build-topics)
            _arguments -w -S -s \
              '--ns=[Class namespace]' \
              '--dir=[Output directory]' \
              '--update[Update wiki repository]' \
              ':user' \
              ':repo' \
               && ret=0
        
        ;;
        (init)
        
        ;;
        (build-conf)
            _arguments -w -S -s \
              '(-f --force)'{-f,--force}'[force building config file.]' \
              '(-s --search)'{-s,--search}'[search default config file automatically]' \
              ':file:_files -g "*.yml"' \
               && ret=0
        
        ;;
        (conf)
            _arguments -w -S -s \
              '(-f --force)'{-f,--force}'[force building config file.]' \
              '(-s --search)'{-s,--search}'[search default config file automatically]' \
              ':file:_files -g "*.yml"' \
               && ret=0
        
        ;;
        (schema)
            _arguments -C \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" schema opt data-source valid-values}' \
              ': :->cmds' \
              '*:: :->option-or-argument' \
               && return
            case $state in
              (cmds)
            local commands; commands=(
              build:'build schema files.'
              list:'list schema files.'
              clean:'clean up schema files.'
            )
            _describe -t commands 'command' commands && ret=0
              ;;
              (option-or-argument)
                curcontext=${curcontext%:*}-$line[1]:
                case $line[1] in
                  (build)
                        _arguments -w -S -s \
                          '(-f --force)'{-f,--force}'[force generate all schema files.]' \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" schema.build opt data-source valid-values}' \
                          ':file:_files' \
                           && ret=0
                  
                  ;;
                  (list)
                  
                  ;;
                  (clean)
                        _arguments -w -S -s \
                          '(-f --force)'{-f,--force}'[force generate all schema files.]' \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" schema.clean opt data-source valid-values}' \
                           && ret=0
                  
                  ;;
                esac
                ;;
              esac
        
        ;;
        (basedata)
            _arguments -w -S -s \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" basedata opt data-source valid-values}' \
               && ret=0
        
        ;;
        (sql)
            _arguments -w -S -s \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" sql opt data-source valid-values}' \
              '(-r --rebuild)'{-r,--rebuild}'[rebuild SQL schema.]' \
              '(-c --clean)'{-c,--clean}'[clean up SQL schema.]' \
              '(-f --file)'{-f,--file=}'[write schema sql to file]' \
              '(-b --basedata)'{-b,--basedata}'[insert basedata]' \
               && ret=0
        
        ;;
        (diff)
            _arguments -w -S -s \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" diff opt data-source valid-values}' \
               && ret=0
        
        ;;
        (migrate)
            _arguments -C \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate opt data-source valid-values}' \
              ': :->cmds' \
              '*:: :->option-or-argument' \
               && return
            case $state in
              (cmds)
            local commands; commands=(
              upgrade:'Run upgrade migration scripts.'
              downgrade:'Run downgrade migration scripts.'
              new:'awesome brief for your app.'
              automatic:'Run upgrade automatically.'
              status:'Show current migration status.'
              diff:'awesome brief for your app.'
            )
            _describe -t commands 'command' commands && ret=0
              ;;
              (option-or-argument)
                curcontext=${curcontext%:*}-$line[1]:
                case $line[1] in
                  (upgrade)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.upgrade opt data-source valid-values}' \
                          '--script-dir[Migration script directory. (default\: db/migrations)]' \
                           && ret=0
                  
                  ;;
                  (downgrade)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.downgrade opt data-source valid-values}' \
                          '--script-dir[Migration script directory. (default\: db/migrations)]' \
                           && ret=0
                  
                  ;;
                  (new)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.new opt data-source valid-values}' \
                          ':taskName' \
                           && ret=0
                  
                  ;;
                  (automatic)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.automatic opt data-source valid-values}' \
                          '--no-drop-column[Do not drop column in automatic migration process]' \
                           && ret=0
                  
                  ;;
                  (status)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.status opt data-source valid-values}' \
                           && ret=0
                  
                  ;;
                  (diff)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" migrate.diff opt data-source valid-values}' \
                          ':taskName' \
                           && ret=0
                  
                  ;;
                esac
                ;;
              esac
        
        ;;
        (version)
            _arguments -w -S -s \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]' \
               && ret=0
        
        ;;
        (db)
            _arguments -C \
              '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" db opt data-source valid-values}' \
              ': :->cmds' \
              '*:: :->option-or-argument' \
               && return
            case $state in
              (cmds)
            local commands; commands=(
              create:'create database bases on the current config.'
              recreate:'re-create database bases on the current config.'
              drop:'create database bases on the current config.'
            )
            _describe -t commands 'command' commands && ret=0
              ;;
              (option-or-argument)
                curcontext=${curcontext%:*}-$line[1]:
                case $line[1] in
                  (create)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" db.create opt data-source valid-values}' \
                           && ret=0
                  
                  ;;
                  (recreate)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" db.recreate opt data-source valid-values}' \
                           && ret=0
                  
                  ;;
                  (drop)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" db.drop opt data-source valid-values}' \
                           && ret=0
                  
                  ;;
                esac
                ;;
              esac
        
        ;;
        (data-source)
            _arguments -C \
              '(-v --verbose)'{-v,--verbose}'[Display verbose information]' \
              ': :->cmds' \
              '*:: :->option-or-argument' \
               && return
            case $state in
              (cmds)
            local commands; commands=(
              add:'Add data source to config file.'
              remove:'Remove data source from config file.'
              set-default:'set default data source for PDO connections.'
            )
            _describe -t commands 'command' commands && ret=0
              ;;
              (option-or-argument)
                curcontext=${curcontext%:*}-$line[1]:
                case $line[1] in
                  (add)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" data-source.add opt data-source valid-values}' \
                          '--host=[host for database]' \
                          '--port=[port for database]' \
                          '--user=[user id for database connection]' \
                          '--password=[password for database connection]' \
                          ':data-source-id' \
                          ':dsn' \
                           && ret=0
                  
                  ;;
                  (remove)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" data-source.remove opt data-source valid-values}' \
                          ':data-source-id' \
                           && ret=0
                  
                  ;;
                  (set-default)
                        _arguments -w -S -s \
                          '(-D --data-source)'{-D,--data-source=}'[specify data source id]::{___bin_lazymeta "" data-source.set-default opt data-source valid-values}' \
                          ':default-datasource' \
                           && ret=0
                  
                  ;;
                esac
                ;;
              esac
        
        ;;
      esac
      ;;
    esac

return ret
}
compdef _bin_lazy lazy
