__FILE__ in
/home/dkarlovi/.vagrant.d/boxes/dkarlovi-VAGRANTSLASH-centos-6.6/1.0.0/virtualbox/include/_Vagrantfile
is equal to that path. What I need is a way to get
"/home/dkarlovi/Vagrant/project1/Vagrantfile", the path of the project
Vagrantfile, but from inside the box Vagrantfile. It seems to me Vagrant
should have an API for this, there's no way around it.

I'll open a new issue on GH. Thank you.

2015-04-26 1:14 GMT+02:00 Alvaro Miranda Aguilera <[email protected]>:

> What you can use is something like this:
>
>   puts File.join(File.expand_path(File.dirname(__FILE__)), "Vagrantfile")
>
>   puts File.dirname(__FILE__)
>
>
>
> On Sun, Apr 26, 2015 at 6:06 AM, Dalibor Karlović <[email protected]>
> wrote:
> > Hello Alvaro, thank you very much for your answer.
> >
> > I'll start by linking the GH repo where you can see what I'm trying to
> do:
> > https://github.com/dkarlovi/vagrant-playground
> >
> > Now, to me more concrete:
> >
> > my custom box is called dkarlovi/centos-6.6
> > it gets embedded with a custom Vagrantfile,
> >
> https://github.com/dkarlovi/vagrant-playground/blob/master/box/_Vagrantfile
> > when installed, that Vagrantfile ends up in
> >
> /home/dkarlovi/.vagrant.d/boxes/dkarlovi-VAGRANTSLASH-centos-6.6/1.0.0/virtualbox/include/_Vagrantfile
> > I create a new Vagrant project in /home/dkarlovi/Vagrant/project1,
> vagrant
> > init dkarlovi/centos-6.6 --minimal
> > when running, I can see that the
> /home/dkarlovi/Vagrant/project1/Vagrantfile
> > gets evaluated before
> >
> /home/dkarlovi/.vagrant.d/boxes/dkarlovi-VAGRANTSLASH-centos-6.6/1.0.0/virtualbox/include/_Vagrantfile
> > so I should, in theory, be able to figure out where's the Vagrantfile
> that
> > started it all
> > I'm currently simulating this, see line 11 but this does not work if I
> run
> > vagrant from say /home/dkarlovi/Vagrant/project1/src
> >
> > I'm doing all of this to be able to check for existence of certain files
> > (Puppet related) and turn provisioning on/off so I'd be able to have a
> full
> > Puppet stack (if files present) or nothing (if not present), my box
> becomes
> > more versatile and usable (for my usages).
> >
> > I've been going through Vagrant source and found that
> > Vagrant::Config::Loader is the place where the path is available, but I
> > don't see where and how I should fetch it.
> >
> >
> > Dana subota, 25. travnja 2015. u 19:15:00 UTC+2, korisnik Alvaro Miranda
> > Aguilera napisao je:
> >>
> >> Hello Dalibor,
> >>
> >> Are 2 things to take into consideration.
> >>
> >> This is the overall simple answer, so apologies in advance if all this
> >> is known and doesn't answer your question.
> >>
> >> One is, Vagrant will load all the Vagrantfiles and follow this rule:
> >>
> >> https://docs.vagrantup.com/v2/vagrantfile/index.html
> >>
> >> <QUOTE>
> >> Vagrant actually loads a series of Vagrantfiles, merging the settings
> >> as it goes. This allows Vagrantfiles of varying level of specificity
> >> to override prior settings. Vagrantfiles are loaded in the order shown
> >> below. Note that if a Vagrantfile is not found at any step, Vagrant
> >> continues with the next step.
> >>
> >> Vagrantfile packaged with the box that is to be used for a given
> machine.
> >> Vagrantfile in your Vagrant home directory (defaults to ~/.vagrant.d).
> >> This lets you specify some defaults for your system user.
> >> Vagrantfile from the project directory. This is the Vagrantfile that
> >> you'll be modifying most of the time.
> >> Multi-machine overrides if any.
> >> Provider-specific overrides, if any.
> >>
> >> At each level, settings set will be merged with previous values. What
> >> this exactly means depends on the setting. For most settings, this
> >> means that the newer setting overrides the older one.
> >>
> >> </QUOTE>
> >>
> >> So by default it should read and merge all the Vagrantfiles.
> >>
> >> If your base box include other files, you can reference them like this:
> >>
> >> include_vagrantfile = File.expand_path("../include/_Vagrantfile",
> >> __FILE__)
> >> load include_vagrantfile if File.exist?(include_vagrantfile)
> >> config.ssh.private_key_path = File.expand_path("../vagrant_rsa",
> __FILE__)
> >>
> >> This came from this thread as example:
> >> http://comments.gmane.org/gmane.comp.tools.vagrant/4813
> >>
> >> Alvaro.
> >>
> >> On Sun, Apr 26, 2015 at 3:48 AM, Dalibor Karlović <[email protected]>
> >> wrote:
> >> > Hello,
> >> >
> >> > I have a custom box which contains a embedded Vagrantfile (let's call
> it
> >> > VF1). This file contains a lot of box-specific config / functionality
> >> > and
> >> > the target is I should be (and am) able to generate the project
> >> > Vagrantfile
> >> > (VF2) just with:
> >> >
> >> > Vagrant.configure(2) do |config|
> >> >   config.vm.box = "my/box"
> >> > end
> >> >
> >> > and still get all the functionality (Puppet integration, VirtualBox
> >> > tweaks,
> >> > YAML config support, etc). The problem is that I'd like to read files
> >> > relative to VF2 from VF1. The way I see it, VF2 gets loaded before VF1
> >> > and
> >> > thus, Vagrant should be able to figure out where VF2 is before loading
> >> > loading VF1. So, how do I access this information?
> >> >
> >> > Thanks in advance.
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups
> >> > "Vagrant" group.
> >> > To unsubscribe from this group and stop receiving emails from it, send
> >> > an
> >> > email to [email protected].
> >> > For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Vagrant" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to [email protected].
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Vagrant" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/vagrant-up/85PwXic-jB0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to