Hi I am trying to create a build script and I am running into an
issue, apparent I have to cd into the folder before I call make
otherwise make seem to fail.
If I was at the command like I would just type
git clone path_to_repository build/
cd build/mozilla_firefox
make -f client.mk
however if I try this from a ruby script make barf and fails because
it's expecting to be called from within the foder
build/mozilla_firefox
system "git clone path_to_repository build/"
system "make -f build/mozilla_firefox/client.mk"
I also tried the following which doesn't do what I would expect, which
is cd into the folder
system "git clone path_to_repository build/"
system "cd build/mozilla_firefox"
system "make -f client.mk"
Do anyone got idea how I can get this build script working?
My recommendation here is to generally write a shell script to do what
you want and then use the system method to run that single script.
However, you can do what you want within Ruby too:
system "git clone path_to_repository build/"
Dir.chdir("build/mozilla_firefox") do
system "make -f client.mk"
end
The thing to keep in mind is that the system method runs a subprocess to
do the work, and a subprocess cannot modify the environment of its
parent. The current working directory of a process is part of its
environment which is why using system in an attempt to change
directories had no effect for your script.
-Jeremy
···
On 11/05/2011 10:01 PM, Dev Guy wrote:
Hi I am trying to create a build script and I am running into an
issue, apparent I have to cd into the folder before I call make
otherwise make seem to fail.
If I was at the command like I would just type
git clone path_to_repository build/
cd build/mozilla_firefox
make -f client.mk
however if I try this from a ruby script make barf and fails because
it's expecting to be called from within the foder
build/mozilla_firefox
system "git clone path_to_repository build/"
system "make -f build/mozilla_firefox/client.mk"
I also tried the following which doesn't do what I would expect, which
is cd into the folder
system "git clone path_to_repository build/"
system "cd build/mozilla_firefox"
system "make -f client.mk"
Do anyone got idea how I can get this build script working?
Jeremy thanks, that got things going. I realized what was happening
with the process working directory, but didn't know how to fix it.
I'm building on windows and just refuse to work with batch files =)
Regards,
Rajinder
···
On Sat, Nov 5, 2011 at 11:25 PM, Jeremy Bopp <jeremy@bopp.net> wrote:
On 11/05/2011 10:01 PM, Dev Guy wrote:
Hi I am trying to create a build script and I am running into an
issue, apparent I have to cd into the folder before I call make
otherwise make seem to fail.
If I was at the command like I would just type
git clone path_to_repository build/
cd build/mozilla_firefox
make -f client.mk
however if I try this from a ruby script make barf and fails because
it's expecting to be called from within the foder
build/mozilla_firefox
system "git clone path_to_repository build/"
system "make -f build/mozilla_firefox/client.mk"
I also tried the following which doesn't do what I would expect, which
is cd into the folder
system "git clone path_to_repository build/"
system "cd build/mozilla_firefox"
system "make -f client.mk"
Do anyone got idea how I can get this build script working?
My recommendation here is to generally write a shell script to do what
you want and then use the system method to run that single script.
However, you can do what you want within Ruby too:
system "git clone path_to_repository build/"
Dir.chdir("build/mozilla_firefox") do
system "make -f client.mk"
end
The thing to keep in mind is that the system method runs a subprocess to
do the work, and a subprocess cannot modify the environment of its
parent. The current working directory of a process is part of its
environment which is why using system in an attempt to change
directories had no effect for your script.