したがって、ディレクトリが存在するかどうかを確認する単一行の bash コマンドがあります。存在する場合は git pull し、存在しない場合はリポジトリをクローンします。Windows ボックスで Cygwin を実行していますが、Cygwin でこのコマンドを実行すると、完全に機能します。
if [ -d C:/repo ]; then cd C:/repo && "C:/Program Files (x86)/Git/bin/git.exe" pull; else "C:/Program Files (x86)/Git/bin/git.exe" clone -b develop https://repo.git C:/repo; fi
Puppet から同じコマンドを実行すると、次のようになります。
exec {'checkout repository':
command => "if [ -d C:/repo ]; then cd C:/repo && "C:/Program Files (x86)/Git/bin/git.exe" pull; else "C:/Program Files (x86)/Git/bin/git.exe" clone -b develop https://repo.git C:/repo; fi"
}
エラーが発生します:
エラー: ' if [ -d C:/repo ]; 次に cd C:/repo && "C:/Program Files (x86)/Git/bin/git.exe" pull; else "C:/Program Files (x86)/Git/bin/git.exe" clone -b development https://repo.git C:/repo; fi' は修飾されておらず、パスが指定されていません。コマンドを修飾するか、パスを指定してください。
理由はありますか?