mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#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
 |