Boxen を使用して開発環境をセットアップしようとしています。開始するためにプルダウンしてスクリプトを実行したいリポジトリがいくつかあります。慣習にたどり着きました。リポジトリには、実行する必要がscripts/あるスクリプトを含むディレクトリがあります。bootstrap
これは、execコマンドで可能になるようです。しかし、何を実行するかを指示するには、レポのディレクトリにアクセスする必要があります。他のスクリプトは$repo_dirまたはを使用します${boxen::config:srcdir}/${name}。私はこれらのそれぞれと、さまざまなスタイルの を試しましたがexec、役に立ちませんでした。
マニフェスト
class projects::hero {
include ruby
boxen::project { 'hero':
ruby => '2.0.0',
source => 'myorg/hero'
}
->
Exec {
command => '$repo_dir/scripts/echo'
}
->
notify {'hero is running at $srcdir':}
}
これは、指定された目標よりも単純です。スクリプトは、それらが存在するディレクトリ内で実行する必要があります。したがって、私の最初の(そしてできれば最終的な)マニフェストは、execステップに対して次のようになります。
->
exec { 'running bootstrap on hero':
command => '$repo_dir/scripts/bootstrap',
cwd => '$repo_dir/scripts'
}
スクリプト
今のところ、scripts/echo非常に簡単です:
#!/bin/bash
echo "Echo File!"
touch `date`
出力は実際には表示されないため、日付を含むファイルを作成して、この副作用を観察し、スクリプトが実際に実行されたことを確認できるようにします。
ボクセンを呼び出す
manifestsこのプロジェクトをディレクトリから直接呼び出すだけです。
Chris:manifests chris$ boxen hero
出力
Warning: Scope(Class[Boxen::Environment]): Setting up 'hero'. This can be made permanent by having 'include projects::hero' in your personal manifest.
Error: Could not find resource 'command => $repo_dir/scripts/echo' for relationship from 'Boxen::Project[hero]' on node chris.local
Error: Could not find resource 'command => $repo_dir/scripts/echo' for relationship from 'Boxen::Project[hero]' on node chris.local
${boxen::config::srcdir}代わりに試してみると、これも当てはまります。他の例を見ると、これらの変数が使用されており、機能しているようです。私はそれを間違って呼んでいますか?使用する必要がある別の変数はありますか?