123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #compdef zeus
- #autoload
- # in order to make this work, you will need to have the gem zeus installed
- # zeus zsh completion
- local -a _1st_arguments
- if [[ -e .zeus.sock ]]; then
- _1st_arguments=(
- 'console:Lets you interact with your Rails application from the command line. (alias = c)'
- 'cucumber:Runs cucumber.'
- 'dbconsole:Figures out which database you are using and drops you into whichever command line interface.'
- 'destroy:Figures out what generate did, and undoes it. (alias = d)'
- 'generate:Uses templates to create a whole lot of things. (alias = g)'
- 'rake:Execute rake tasks.'
- 'runner:Runs Ruby code in the context of Rails non-interactively. (alias = r)'
- 'server:Launches a small web server named WEBrick which comes bundled with Ruby. (alias = s)'
- 'test:Runs RSpec tests. (alias = rspec, testrb)'
- 'version:Shows the version number.'
- )
- else
- _1st_arguments=(
- 'start:Preloads the zeus environment'
- 'init:Generate a zeus.json file'
- )
- fi
- _rails_generate_arguments() {
- generate_arguments=(
- controller
- generator
- helper
- integration_test
- mailer
- migration
- model
- observer
- performance_test
- plugin
- resource
- scaffold
- scaffold_controller
- session_migration
- stylesheets
- )
- }
- _rake_does_task_list_need_generating () {
- if [ ! -f .rake_tasks ]; then return 0;
- else
- accurate=$(stat -f%m .rake_tasks)
- changed=$(stat -f%m Rakefile)
- return $(expr $accurate '>=' $changed)
- fi
- }
- _zrake ()
- {
- local expl
- declare -a tasks
- if [ -f Rakefile ]; then
- if _rake_does_task_list_need_generating; then
- echo "\nGenerating .rake_tasks..." > /dev/stderr
- rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
- fi
- tasks=(`cat .rake_tasks`)
- _wanted tasks expl 'rake' compadd $tasks
- fi
- }
- local expl
- local curcontext="$curcontext" state line
- typeset -A opt_args
- _arguments -C \
- ':command:->command' \
- '*::options:->options'
- case $state in
- (command)
- _describe -t commands "zeus subcommand" _1st_arguments
- return
- ;;
- (options)
- case $line[1] in
- (rake)
- _zrake
- ;;
- (generate|g|destroy|d)
- _rails_generate_arguments
- _wanted generate_arguments expl 'all generate' compadd -a generate_arguments
- ;;
- esac
- ;;
- esac
|