#include <msp/core/getopt.h>
#include <msp/datafile/parser.h>
#include <msp/io/buffered.h>
+#include <msp/io/except.h>
#include <msp/io/file.h>
#include <msp/path/utils.h>
#include <msp/strings/formatter.h>
*/
int Builder::load_build_file(const Path &fn)
{
- IO::File inf(fn.str());
- IO::Buffered in(inf);
+ try
+ {
+ IO::File inf(fn.str());
+ IO::Buffered in(inf);
- if(verbose>=3)
- cout<<"Reading "<<fn<<'\n';
+ if(verbose>=3)
+ cout<<"Reading "<<fn<<'\n';
- DataFile::Parser parser(in, fn.str());
- Loader loader(*this, fn.subpath(0, fn.size()-1));
- loader.load(parser);
+ DataFile::Parser parser(in, fn.str());
+ Loader loader(*this, fn.subpath(0, fn.size()-1));
+ loader.load(parser);
+ }
+ catch(const IO::FileNotFound &)
+ {
+ return -1;
+ }
return 0;
}
*/
#include <msp/core/except.h>
+#include <msp/io/except.h>
#include <msp/io/file.h>
#include <msp/io/print.h>
#include <msp/path/utils.h>
in.getline(profile);
set_option("profile", profile);
}
- catch(const SystemError &)
+ catch(const IO::FileNotFound &)
{ }
freeze_mtime=true;
if(!package.get_builder().get_dry_run())
{
- try
- {
- IO::File out((package.get_source()/".profile.cache").str().c_str());
- IO::print(out, "%s\n", profile);
- }
- catch(const SystemError &)
- { }
+ IO::File out((package.get_source()/".profile.cache").str(), IO::M_WRITE);
+ IO::print(out, "%s\n", profile);
}
freeze_mtime=true;
if(i!=options.end())
fn=package.get_source()/(".options."+i->second.value+".cache");
- try
- {
- IO::File out(fn.str());
+ IO::File out(fn.str(), IO::M_WRITE);
- for(i=options.begin(); i!=options.end(); ++i)
- IO::print(out, "option \"%s\" \"%s\";\n", i->second.name, i->second.value);
- }
- catch(const SystemError &)
- { }
+ for(i=options.begin(); i!=options.end(); ++i)
+ IO::print(out, "option \"%s\" \"%s\";\n", i->second.name, i->second.value);
}
bool Config::set_option(const string &opt, const string &val)