1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #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
|