[color=blue]1、一个完整的rails app自动生成bash[/color]
[quote]#!/bin/bash
clear
echo -e "Preparing to start ...\n"
cd /Users/gelias/workspace/ruby
echo -e "removing oldest version ... \n"
rm -rf /Users/gelias/workspace/ruby/cardapiaria
echo -e "using ruby version 1.9.3 and Rails 3.2"
rvm 1.9.3@rails32
echo -e "generating cardapiaria app"
rails new cardapiaria --database postgresql
cd cardapiaria
rails generate scaffold Establishment name:string description:string address:string phone:integer url:string
rails generate scaffold User establishment_id:integer login:string passwd:string email:string
rails generate scaffold Category establishment_id:integer description:string
rails generate scaffold MenuItem category_id:integer name:string description:string price:decimal
echo -e "\nEdit menu_item migration file and replace the following line ..."
echo -e " t.decimal :price"
echo -e "to ..."
echo -e " t.decimal :price, :precision => 10, :scale => 2"
read -p "press any key to continue ... "
echo -e "generating migration and relationships"
rails generate migration AddEstablishmentIdToUser establishment_id:integer
rails generate migration AddEstablishmentIdToCategory establishment_id:integer
rails generate migration AddCategoryIdToMenuItem category_id:integer
echo -e "\noverriding models ... "
rm -rf /Users/gelias/workspace/ruby/cardapiaria/config/database.yml
cp -rf /Users/gelias/workspace/ruby/cardapiaria_setup/database.yml /Users/gelias/workspace/ruby/cardapiaria/config/database.yml
cp -rf /Users/gelias/workspace/ruby/cardapiaria_setup/models /Users/gelias/workspace/ruby/cardapiaria/app
read -p "press any key to continue ... "
echo -e "\running migrations"
rake db:migrate
echo -e "\starting weBrick ..."
rails server[/quote]
[quote]2、第二个bash
rbenv-install.sh
Shell
#!/bin/bash
#=====================================
# Settings Here
#=====================================
# Platform
PLATFORM=Ubuntu
#PLATFORM="CentOS"
# Rails Application Name
RAILS_APP_NAME=example
# Ruby Version
#RUBY_VERSION=2.0.0-p247
RUBY_VERSION=1.9.3-p392
# Rails Version
#RAILS_VERSION=4.0.0
RAILS_VERSION=3.2.14
# Git User Configuration
GIT_USER_NAME="Wataru Noguchi"
EMAIL="user@example.com"
GIT_OPTIONS=--global
#=====================================
if [ "$PLATFORM" = "Ubuntu" ]; then
sudo apt-get -y install libssl-dev zlib1g-dev libreadline-dev libmysqlclient-dev sqlite3 libsqlite3-dev g++ git curl
else
yum -y groupinstall "Development Tools"
yum -y install openssl-devel zlib-devel readline-devel mysql-devel sqlite-devel git
fi
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build/
sudo ./install.sh
rbenv install $RUBY_VERSION
rbenv global $RUBY_VERSION
rbenv rehash
rbenv exec gem install bundler --no-ri --no-rdoc
rbenv rehash
cd ~
mkdir rails_projects
cd rails_projects/
cat << EOS > Gemfile
source "https://rubygems.org"
gem "rails", "$RAILS_VERSION"
EOS
bundle install --path vendor/bundle
bundle exec rails new $RAILS_APP_NAME --skip-bundle
cd $RAILS_APP_NAME
cat <<EOF >> Gemfile
gem 'execjs'
gem 'therubyracer'
EOF
bundle install --path vendor/bundle
echo '/vendor/bundle' >> .gitignore
git init
git add .
git config $GIT_OPTIONS user.name $USERNAME
git config $GIT_OPTIONS user.email $EMAIL
git commit -m "Initial commit."
echo "finished!"[/quote]
3、bash设置
[quote].bashrc
PS1="mac osx:\W \$ "
alias gera="cd ~/Documents/railsapp/gera-it"
alias ra="cd ~/Documents/railsapp"
alias ss="cd ~/Documents/railsapp/sstore-experimental"
alias rs="rails s"
alias rc="rails c"
alias rg="rails g"
alias m="mate"
alias bu="bundle"
alias dbm="rake db:migrate"[/quote]
4、
[quote]newROR.sh
Shell
cd ~/rails/;
rails new {query};
#将capistrano代码复制过来
#capistrano代码请自行配置 http://railscasts.com/episodes/337-capistrano-recipes
cp -R ~/rails/ToolBox/capistrano/recipes ~/rails/{query}/config/;
cp ~/rails/ToolBox/capistrano/deploy.rb ~/rails/{query}/config/;
#在deploy.rb中设置应用名为APPLICATION_NAME
sed 's/APPLICATION_NAME/{query}/g' ~/rails/{query}/config/deploy.rb > ~/rails/{query}/config/deploy.rb;
#配置pow,如未使用可删除
cd ~/.pow;
ln -s ~/rails/{query};
cd ~/rails/{query}/;
#我使用bitbucket托管代码,用github自行修改
curl -u username:password -d "name={query}&scm=git&is_private=true&language=ruby" https://api.bitbucket.org/1.0/repositories
git init;
git remote add origin ssh://git@bitbucket.org/username/{query}.git;
git add .;
git commit -m "init project";
git push -u origin --all;
mate .;
[/quote]
[quote]#!/bin/bash
clear
echo -e "Preparing to start ...\n"
cd /Users/gelias/workspace/ruby
echo -e "removing oldest version ... \n"
rm -rf /Users/gelias/workspace/ruby/cardapiaria
echo -e "using ruby version 1.9.3 and Rails 3.2"
rvm 1.9.3@rails32
echo -e "generating cardapiaria app"
rails new cardapiaria --database postgresql
cd cardapiaria
rails generate scaffold Establishment name:string description:string address:string phone:integer url:string
rails generate scaffold User establishment_id:integer login:string passwd:string email:string
rails generate scaffold Category establishment_id:integer description:string
rails generate scaffold MenuItem category_id:integer name:string description:string price:decimal
echo -e "\nEdit menu_item migration file and replace the following line ..."
echo -e " t.decimal :price"
echo -e "to ..."
echo -e " t.decimal :price, :precision => 10, :scale => 2"
read -p "press any key to continue ... "
echo -e "generating migration and relationships"
rails generate migration AddEstablishmentIdToUser establishment_id:integer
rails generate migration AddEstablishmentIdToCategory establishment_id:integer
rails generate migration AddCategoryIdToMenuItem category_id:integer
echo -e "\noverriding models ... "
rm -rf /Users/gelias/workspace/ruby/cardapiaria/config/database.yml
cp -rf /Users/gelias/workspace/ruby/cardapiaria_setup/database.yml /Users/gelias/workspace/ruby/cardapiaria/config/database.yml
cp -rf /Users/gelias/workspace/ruby/cardapiaria_setup/models /Users/gelias/workspace/ruby/cardapiaria/app
read -p "press any key to continue ... "
echo -e "\running migrations"
rake db:migrate
echo -e "\starting weBrick ..."
rails server[/quote]
[quote]2、第二个bash
rbenv-install.sh
Shell
#!/bin/bash
#=====================================
# Settings Here
#=====================================
# Platform
PLATFORM=Ubuntu
#PLATFORM="CentOS"
# Rails Application Name
RAILS_APP_NAME=example
# Ruby Version
#RUBY_VERSION=2.0.0-p247
RUBY_VERSION=1.9.3-p392
# Rails Version
#RAILS_VERSION=4.0.0
RAILS_VERSION=3.2.14
# Git User Configuration
GIT_USER_NAME="Wataru Noguchi"
EMAIL="user@example.com"
GIT_OPTIONS=--global
#=====================================
if [ "$PLATFORM" = "Ubuntu" ]; then
sudo apt-get -y install libssl-dev zlib1g-dev libreadline-dev libmysqlclient-dev sqlite3 libsqlite3-dev g++ git curl
else
yum -y groupinstall "Development Tools"
yum -y install openssl-devel zlib-devel readline-devel mysql-devel sqlite-devel git
fi
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build/
sudo ./install.sh
rbenv install $RUBY_VERSION
rbenv global $RUBY_VERSION
rbenv rehash
rbenv exec gem install bundler --no-ri --no-rdoc
rbenv rehash
cd ~
mkdir rails_projects
cd rails_projects/
cat << EOS > Gemfile
source "https://rubygems.org"
gem "rails", "$RAILS_VERSION"
EOS
bundle install --path vendor/bundle
bundle exec rails new $RAILS_APP_NAME --skip-bundle
cd $RAILS_APP_NAME
cat <<EOF >> Gemfile
gem 'execjs'
gem 'therubyracer'
EOF
bundle install --path vendor/bundle
echo '/vendor/bundle' >> .gitignore
git init
git add .
git config $GIT_OPTIONS user.name $USERNAME
git config $GIT_OPTIONS user.email $EMAIL
git commit -m "Initial commit."
echo "finished!"[/quote]
3、bash设置
[quote].bashrc
PS1="mac osx:\W \$ "
alias gera="cd ~/Documents/railsapp/gera-it"
alias ra="cd ~/Documents/railsapp"
alias ss="cd ~/Documents/railsapp/sstore-experimental"
alias rs="rails s"
alias rc="rails c"
alias rg="rails g"
alias m="mate"
alias bu="bundle"
alias dbm="rake db:migrate"[/quote]
4、
[quote]newROR.sh
Shell
cd ~/rails/;
rails new {query};
#将capistrano代码复制过来
#capistrano代码请自行配置 http://railscasts.com/episodes/337-capistrano-recipes
cp -R ~/rails/ToolBox/capistrano/recipes ~/rails/{query}/config/;
cp ~/rails/ToolBox/capistrano/deploy.rb ~/rails/{query}/config/;
#在deploy.rb中设置应用名为APPLICATION_NAME
sed 's/APPLICATION_NAME/{query}/g' ~/rails/{query}/config/deploy.rb > ~/rails/{query}/config/deploy.rb;
#配置pow,如未使用可删除
cd ~/.pow;
ln -s ~/rails/{query};
cd ~/rails/{query}/;
#我使用bitbucket托管代码,用github自行修改
curl -u username:password -d "name={query}&scm=git&is_private=true&language=ruby" https://api.bitbucket.org/1.0/repositories
git init;
git remote add origin ssh://git@bitbucket.org/username/{query}.git;
git add .;
git commit -m "init project";
git push -u origin --all;
mate .;
[/quote]