1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2025-12-12 15:34:50 +08:00
ohmyzsh-mirror/plugins/rails/rails.plugin.zsh
2025-10-25 16:39:35 +01:00

252 lines
6.3 KiB
Bash

# rails command wrapper
function _rails_command () {
if [ -e "bin/stubs/rails" ]; then
bin/stubs/rails $@
elif [ -e "bin/rails" ]; then
bin/rails $@
elif [ -e "script/rails" ]; then
ruby script/rails $@
elif [ -e "script/server" ]; then
ruby script/$@
else
command rails $@
fi
}
alias rails='_rails_command'
compdef _rails_command=rails
# rake command wrapper
function _rake_command () {
if [ -e "bin/stubs/rake" ]; then
bin/stubs/rake $@
elif [ -e "bin/rake" ]; then
bin/rake $@
elif type bundle &> /dev/null && [[ -e "Gemfile" || -e "gems.rb" ]]; then
bundle exec rake $@
else
command rake $@
fi
}
alias rake='_rake_command'
compdef _rake_command=rake
# Log aliases
alias devlog='tail -f log/development.log'
alias prodlog='tail -f log/production.log'
alias testlog='tail -f log/test.log'
# Environment settings
alias -g RED='RAILS_ENV=development'
alias -g REP='RAILS_ENV=production'
alias -g RET='RAILS_ENV=test'
# Rails aliases
alias rc='rails console'
alias rcs='rails console --sandbox'
alias rd='rails destroy'
alias rdb='rails dbconsole'
alias rdmtc='rails db:migrate db:test:clone'
alias rds='rails db:seed'
alias rdtc='rails db:test:clone'
alias rdtp='rails db:test:prepare'
alias rgen='rails generate'
alias rgm='rails generate migration'
alias rlc='rails log:clear'
alias rmd='rails middleware'
alias rn='rails notes'
alias rp='rails plugin'
alias rr='rails routes'
alias rrc='rails routes --controller'
alias rre='rails routes --expanded'
alias rrg='rails routes --grep'
alias rru='rails routes --unused'
alias rs='rails server'
alias rsb='rails server --bind'
alias rsd='rails server --debugger'
alias rsp='rails server --port'
alias rsts='rails stats'
alias rt='rails test'
alias rta='rails test:all'
alias ru='rails runner'
# Foreman aliases
alias fmns='foreman start'
# Rake aliases
alias rkdc='rake db:create'
alias rkdd='rake db:drop'
alias rkdm='rake db:migrate'
alias rkdmd='rake db:migrate:down'
alias rkdmr='rake db:migrate:redo'
alias rkdms='rake db:migrate:status'
alias rkdmtc='rake db:migrate db:test:clone'
alias rkdmu='rake db:migrate:up'
alias rkdr='rake db:rollback'
alias rkdrs='rake db:reset'
alias rkds='rake db:seed'
alias rkdsl='rake db:schema:load'
alias rkdtc='rake db:test:clone'
alias rkdtp='rake db:test:prepare'
alias rklc='rake log:clear'
alias rkmd='rake middleware'
alias rkn='rake notes'
alias rksts='rake stats'
alias rkt='rake test'
# Multi-database functions
# Usage: rdc [database] - rails db:create[:database]
function rdc() {
if [ $# -eq 0 ]; then
echo "Running: rails db:create" >&2
rails db:create
else
echo "Running: rails db:create:$1" >&2
rails db:create:"$1"
fi
}
# Usage: rdd [database] - rails db:drop[:database]
function rdd() {
if [ $# -eq 0 ]; then
echo "Running: rails db:drop" >&2
rails db:drop
else
echo "Running: rails db:drop:$1" >&2
rails db:drop:"$1"
fi
}
# Usage: rdm [database] [VERSION=x VERBOSE=false SCOPE=blog] - rails db:migrate[:database]
function rdm() {
if [ $# -eq 0 ]; then
echo "Running: rails db:migrate" >&2
rails db:migrate
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:migrate $*" >&2
rails db:migrate "$@"
else
local database="$1"
shift
echo "Running: rails db:migrate:$database $*" >&2
rails db:migrate:"$database" "$@"
fi
}
# Usage: rdmd [database] [VERSION=x] - rails db:migrate:down[:database]
function rdmd() {
if [ $# -eq 0 ]; then
echo "Running: rails db:migrate:down" >&2
rails db:migrate:down
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:migrate:down $*" >&2
rails db:migrate:down "$@"
else
local database="$1"
shift
echo "Running: rails db:migrate:down:$database $*" >&2
rails db:migrate:down:"$database" "$@"
fi
}
# Usage: rdmr [database] [STEP=x VERSION=x] - rails db:migrate:redo[:database]
function rdmr() {
if [ $# -eq 0 ]; then
echo "Running: rails db:migrate:redo" >&2
rails db:migrate:redo
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:migrate:redo $*" >&2
rails db:migrate:redo "$@"
else
local database="$1"
shift
echo "Running: rails db:migrate:redo:$database $*" >&2
rails db:migrate:redo:"$database" "$@"
fi
}
# Usage: rdms [database] - rails db:migrate:status[:database]
function rdms() {
if [ $# -eq 0 ]; then
echo "Running: rails db:migrate:status" >&2
rails db:migrate:status
else
echo "Running: rails db:migrate:status:$1" >&2
rails db:migrate:status:"$1"
fi
}
# Usage: rdmu [database] [VERSION=x] - rails db:migrate:up[:database]
function rdmu() {
if [ $# -eq 0 ]; then
echo "Running: rails db:migrate:up" >&2
rails db:migrate:up
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:migrate:up $*" >&2
rails db:migrate:up "$@"
else
local database="$1"
shift
echo "Running: rails db:migrate:up:$database $*" >&2
rails db:migrate:up:"$database" "$@"
fi
}
# Usage: rdr [database] [STEP=n] - rails db:rollback[:database]
function rdr() {
if [ $# -eq 0 ]; then
echo "Running: rails db:rollback" >&2
rails db:rollback
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:rollback $*" >&2
rails db:rollback "$@"
else
local database="$1"
shift
echo "Running: rails db:rollback:$database $*" >&2
rails db:rollback:"$database" "$@"
fi
}
# Usage: rdrs [database] - rails db:reset[:database]
function rdrs() {
if [ $# -eq 0 ]; then
echo "Running: rails db:reset" >&2
rails db:reset
else
echo "Running: rails db:reset:$1" >&2
rails db:reset:"$1"
fi
}
# Usage: rdsl [database] [SCHEMA_FORMAT=ruby|sql] - rails db:schema:load[:database]
function rdsl() {
if [ $# -eq 0 ]; then
echo "Running: rails db:schema:load" >&2
rails db:schema:load
elif [[ "$1" == *"="* ]]; then
echo "Running: rails db:schema:load $*" >&2
rails db:schema:load "$@"
else
local database="$1"
shift
echo "Running: rails db:schema:load:$database $*" >&2
rails db:schema:load:"$database" "$@"
fi
}
# legacy stuff
alias sc='ruby script/console'
alias sd='ruby script/destroy'
alias sd='ruby script/server --debugger'
alias sg='ruby script/generate'
alias sp='ruby script/plugin'
alias sr='ruby script/runner'
alias ssp='ruby script/spec'
alias sstat='thin --stats "/thin/stats" start'
function remote_console() {
/usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"
}