3 This file is part of builder
4 Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
11 #include <msp/fs/dir.h>
12 #include <msp/io/print.h>
13 #include <msp/strings/utils.h>
15 #include "externalaction.h"
20 void ExternalAction::launch()
22 if(builder.get_verbose()>=2)
23 IO::print("%s\n", join(argv.begin(), argv.end()));
25 if(builder.get_dry_run())
32 char *argv_[argv.size()+1];
35 for(StringList::iterator i=argv.begin(); i!=argv.end(); ++i)
36 argv_[j++] = strdup(i->c_str());
41 execvp(argv_[0], argv_);
42 IO::print("Couldn't execute %s\n", argv.front());
50 int ExternalAction::check()
52 if(builder.get_dry_run())
62 if(waitpid(pid, &status, WNOHANG)==pid)
66 exit_code = WEXITSTATUS(status);