2

開発と本番用に異なる値(パス)を持ついくつかのbashスクリプトを使用するRailsアプリケーションがあります。capistranoを使用して、本番環境に適した値を使用してアプリをデプロイしたいと思います。たとえば、#{Rails.root} +'script.sh'の場合:

 #!/bin/bash
 /usr/local/bin/convert  -colorspace sRGB -background transparent -font Myriad-Pro-Condensed -fill grey0 -stroke yellow -strokewidth 2 -size 640x480 -gravity $3 label:"$2" $1.png

生産のために私は必要になります:

 #!/bin/bash
 /usr/bin/convert  -colorspace sRGB -background transparent -font Myriad-Pro-Condensed -fill grey0 -stroke yellow -strokewidth 2 -size 640x480 -gravity $3 label:"$2" $1.png

デプロイ中にファイルをオンザフライで変更する(値を変更するgsubコマンドを使用する)ソリューションはありますか?

4

1 に答える 1

6

ERBテンプレートはおそらく最も簡単です。テンプレート内では、すべてのCapistrano変数にアクセスできるため、現在のステージなどを確認できます。キャップコードは次のようになります。

template = File.read(File.join(File.dirname(__FILE__), "templates/script.sh.erb"))
result = ERB.new(template).result(binding)
put result, "#{release_path}/script.sh"
于 2012-07-22T00:25:29.423 に答える