16 #define ZYPP_USE_RESOLVER_INTERNALS
41 const SystemCheck & SystemCheck::instance()
43 static SystemCheck _val;
48 SystemCheck::SystemCheck() {
59 bool SystemCheck::setFile(
const Pathname & file)
const{
60 MIL <<
"Setting checkFile to : " << file << endl;
66 bool SystemCheck::setDir(
const Pathname & dir)
const {
67 MIL <<
"Setting checkFile directory to : " << dir << endl;
74 const Pathname & SystemCheck::file() {
78 const Pathname & SystemCheck::dir() {
90 bool SystemCheck::loadFile(Pathname & file,
bool reset_caps)
const{
93 file = trg->assertRootPrefix( file );
96 if ( ! pi.isFile() ) {
97 WAR <<
"Can't read " << file <<
" " << pi << endl;
106 std::ifstream infile( file.c_str() );
107 for( iostr::EachLine in( infile ); in; in.next() ) {
109 if ( ! l.empty() && l[0] !=
'#' )
113 if (capList.size() == 2 ) {
114 CapList::iterator it = capList.begin();
115 if (*it ==
"requires") {
116 _require.insert(Capability(*(it+1)));
117 }
else if (*it ==
"conflicts") {
120 ERR <<
"Wrong parameter: " << l << endl;
123 ERR <<
"Wrong line: " << l << endl;
127 MIL <<
"Read " << pi << endl;
131 bool SystemCheck::loadFiles()
const {
134 [
this](
const Pathname & dir_r,
const char *
const & name_r)->
bool
136 const std::string wanted =
".check";
137 Pathname pth = dir_r/name_r;
138 if (pth.extension() != wanted) {
139 MIL <<
"Skipping " << pth <<
" (not a *.check file)" << endl;
143 MIL <<
"Reading " << pth << endl;
144 return loadFile(pth, false );
159 str <<
"requires" << endl;
160 for (CapabilitySet::const_iterator it =
_require.begin(); it !=
_require.end(); ++it)
161 str <<
" " << *it << endl;
163 str <<
"conflicts" << endl;
164 for (CapabilitySet::const_iterator it =
_conflict.begin(); it !=
_conflict.end(); ++it)
165 str <<
" " << *it << endl;