0

capistranoを使用してphpアプリケーションをデプロイしています。構成ファイルのリストを以前のリリースから新しいリリースにコピーする必要があります。リストは配列で維持されます。この配列をループして以前のリリースから現在のリリースにコピーしているときに、ソースファイルが見つからない場合はエラーがスローされ、それ以降の実行は停止します。スクリプトでこのようなケースを無視し、ソースファイルが存在しない場合は、次のコマンドを実行して簡単なメッセージを出力し続けたいと思います。次のようなコマンドを使用してみましたが、うまくいきませんでした。 run "test -f /tmp/myfile && cp -p /tmp/myfile /home/admin

あるいは

if(File.exists?("/tmp/myfile"))

 run "cp -p /tmp/myfile /home/admin" 


else

  print " file doesnot exist"

end

前もって感謝します !!

4

1 に答える 1

1

私はこれで行きます:

run <<-CMD
  if [ -f /tmp/myfile ]; then \
    cp -p /tmp/myfile /home/admin; \
  else \
    echo 'myfile does not exist'; \
  fi
CMD

すべての capistranorunコマンドはリモート サーバーで実行され、0成功を示す終了値のみが示されることに注意してください。の結果は、"test -f /tmp/myfile && cp -p /tmp/myfile /home/adminまだ存在しない場合です1。ファイルが存在しないというメッセージで呼び出すために/tmp/myfile使用できます。||echo

test -f /tmp/myfile && cp -p /tmp/myfile /home/admin && echo myfile does not exist

これは同じことです。

于 2013-03-08T07:01:08.760 に答える