2013-06-29 8 views
10

Vagrantfileを調整して、プロジェクトルートにフォルダがない場合は自動的に作成するようにしています。フォルダを作成することは問題ありませんが、を探し出すのに問題があります。そのフォルダを作成する場所はです。Vagrantfileフォルダを見つけよう

この情報はVagrant::Environmentオブジェクトで利用可能であることがわかりましたが、cwdというオブジェクトがありますが、現在のインスタンスをVagrantfileから取得する方法がわかりません。バゲントの文書は少しばかり見えます。

編集:

私の質問は、人形を使用する方法に関するものではありません。私は内にのコードを書いています。私はVagrant::Environmentの現在のインスタンスを取得する方法を知りたいです。デフォルトでは

+0

あなたが何をしようとするのより良い例を与えることができますか? –

+0

私が呼びたいメソッドについて述べましたが、クラスの現在のインスタンスを取得する方法はわかりません。 –

答えて

18

vagrant_root = File.dirname(__FILE__) 
0

、ルートディレクトリはここ/home/vagrant

は」vagrantユーザー

exec { 'create folder': 
    cwd  => '/home/vagrant', 
    user => 'vagrant', 
    command => 'mkdir new_folder', 
    unless => "/usr/bin/test -d /home/vagrant/new_folder", 
    } 
+0

私の質問は人形じゃない。 –

+0

'/ home/vagrant'はVM上にあり、Vagrantfileが見つかる場所は(通常は)そうではありません。私は、VM上のその場所はディレクトリの共有/同期によってのみ存在するので、OPはVagrantfileがホストマシン上の***にあるディレクトリについて質問していると思います。 – iconoclast

0

を使用してnew_folderを作成する例私はそれが文書化されていないことのようです...このVagrant::Environmentオブジェクトが何であるかわからないんだけど...

Vagrantfileと同じディレクトリに新しいフォルダを作成する場合は、シェルプロビジョナを使用します:

config.vm.provision :shell, :inline => "mkdir -p /vagrant/test_folder;" 

あなたのホストマシン上でVagrantfileを含むフォルダをしたい場合は、あなたのVagrantfileでこれを入れてみてください:あなたは、その後で物事を試すことができます...ディレクトリを印刷する必要があります

puts Dir.pwd 

その変数。 VagrantfileディレクトリがVagrantfileでこれを試す見つけるに

+2

Dir.pwdは、ルートディレクトリにあるときには、バグルートを与えますが、サブディレクトリ内にあれば、そのルートを与えます。 – patcon

関連する問題