見出し画像

【メモ】Railsをローカルインストールするスクリプトを書いてみた

はじめに

シェルスクリプトの練習がてら、Railsをローカルでインストールしてプロジェクトの作成まで行うスクリプトを書いてみました。
主にこちらの記事を参考にさせていただきました。これを土台として、ちょっとだけ変更を加えた感じとなっています。

実行環境はWSL2で、ディストリビューションはUbuntu 20.04です。
たぶんMacでも動くと思いますが一応。

スクリプトの内容

下記スクリプトの実行時には、第1引数にプロジェクト名を、第2引数にRailsのバージョンを指定して使うことを想定しています。
この第2引数は省略も可能で、省略した場合はバージョン指定が行われないので最新バージョンのRailsがインストールされるようになっています。
1行目のshellへのパスは環境に応じて異なると思うので、適宜変更していただければと。

#!/usr/bin/zsh

# 引数
# 1:rails project name, 2:rails version
RAILS_PROJECT_NAME=$1
RAILS_VERSION=$2
RAILS_INSTALL_SENTENCE='gem "rails"'

# railsのバージョンが引数で指定されている時、そのバージョンのrailsをインストールする
if [ -n "$RAILS_VERSION" ]
then
   RAILS_VERSION_SENTENCE=", \"$RAILS_VERSION\""
   RAILS_INSTALL_SENTENCE="$RAILS_INSTALL_SENTENCE$RAILS_VERSION_SENTENCE"
fi

# railsのgemだけインストールするためのGemfileを作成
cat << EOS > Gemfile
source "http://rubygems.org"
$RAILS_INSTALL_SENTENCE
EOS

# railsをローカルにインストール
bundle config set path 'vendor/bundle'
bundle install

# rails projectを作成(bundle installはしない)
bundle exec rails new $RAILS_PROJECT_NAME --skip-bundle

# ローカルにインストールしたrailsが不要になったので削除
rm -f Gemfile Gemfile.lock
rm -rf .bundle vendor

# (一応)ローカルにインストールしたgemファイルをgitの監視下から外しておく
cat << EOS >> $RAILS_PROJECT_NAME/.gitignore

/vendor/bundle
EOS

上記スクリプトのファイルを『rails_new_script.sh』とか適当な名前で保存したあと、以下のようにコマンド入力すればOK。

ex.1)  $ ./rails_new_script.sh rails_test 5.2.4.4
ex.2)  $ ./rails_new_script.sh rails_test2

参考リンク


いいなと思ったら応援しよう!