From 6c7ca2200c5196690b4665cc815bf3d6e538517c Mon Sep 17 00:00:00 2001 From: Stanislav Visnovsky Date: Fri, 3 Feb 2006 14:22:21 +0000 Subject: [PATCH] don't require 'selections' and 'patterns' file in the source --- zypp/source/susetags/SuseTagsImpl.cc | 87 +++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 32 deletions(-) diff --git a/zypp/source/susetags/SuseTagsImpl.cc b/zypp/source/susetags/SuseTagsImpl.cc index 6160d5b..59d6f12 100644 --- a/zypp/source/susetags/SuseTagsImpl.cc +++ b/zypp/source/susetags/SuseTagsImpl.cc @@ -109,61 +109,84 @@ namespace zypp << content.size() << " packages" << endl; - // parse selections - p = provideFile(_path + "suse/setup/descr/selections"); - - std::ifstream sels (p.asString().c_str()); + bool file_found = true; - while (sels && !sels.eof()) + // parse selections + try { + p = provideFile(_path + "suse/setup/descr/selections"); + } catch (...) { - std::string selfile; + MIL << "'selections' file not found" << endl; + + file_found = false; + } + + if (file_found) + { + std::ifstream sels (p.asString().c_str()); + + while (sels && !sels.eof()) + { + std::string selfile; - getline(sels,selfile); + getline(sels,selfile); - if (selfile.empty() ) continue; + if (selfile.empty() ) continue; - DBG << "Going to parse selection " << selfile << endl; + DBG << "Going to parse selection " << selfile << endl; - Pathname file = provideFile(_path + "suse/setup/descr/" + selfile); - MIL << "Selection file to parse " << file << endl; + Pathname file = provideFile(_path + "suse/setup/descr/" + selfile); + MIL << "Selection file to parse " << file << endl; - Selection::Ptr sel( parseSelection( file ) ); + Selection::Ptr sel( parseSelection( file ) ); - DBG << "Selection:" << sel << endl; + DBG << "Selection:" << sel << endl; - if (sel) - _store.insert( sel ); + if (sel) + _store.insert( sel ); - DBG << "Parsing of " << file << " done" << endl; + DBG << "Parsing of " << file << " done" << endl; + } } // parse patterns - p = provideFile(_path + "suse/setup/descr/patterns"); - - std::ifstream pats (p.asString().c_str()); + file_found = true; + + try { + p = provideFile(_path + "suse/setup/descr/patterns"); + } catch (...) + { + MIL << "'patterns' file not found" << endl; + file_found = false; + } - while (pats && !pats.eof()) + if ( file_found ) { - std::string patfile; + std::ifstream pats (p.asString().c_str()); - getline(pats,patfile); + while (pats && !pats.eof()) + { + std::string patfile; - if (patfile.empty() ) continue; + getline(pats,patfile); - DBG << "Going to parse pattern " << patfile << endl; + if (patfile.empty() ) continue; - Pathname file = provideFile(_path + "suse/setup/descr/" + patfile); - MIL << "Pattern file to parse " << file << endl; + DBG << "Going to parse pattern " << patfile << endl; - Pattern::Ptr pat( parsePattern( file ) ); + Pathname file = provideFile(_path + "suse/setup/descr/" + patfile); + MIL << "Pattern file to parse " << file << endl; - DBG << "Pattern:" << pat << endl; + Pattern::Ptr pat( parsePattern( file ) ); - if (pat) - _store.insert( pat ); + DBG << "Pattern:" << pat << endl; - DBG << "Parsing of " << file << " done" << endl; - } + if (pat) + _store.insert( pat ); + + DBG << "Parsing of " << file << " done" << endl; + } + } } /////////////////////////////////////////////////////////////////// // -- 2.7.4