21 using namespace zypp::parser;
22 using namespace zypp::parser::susetags;
31 Downloader::Downloader(
const RepoInfo &repoinfo,
const Pathname &delta_dir )
32 : repo::
Downloader(repoinfo), _delta_dir(delta_dir)
41 Pathname mediafile = media.
provideFile(
"/media.1/media" );
49 Pathname deltafile(dir + file.basename());
50 if (PathInfo(deltafile).isExist())
56 const Pathname &dest_dir,
66 start( dest_dir, media );
68 if ( PathInfo(dest_dir / sig ).isExist() )
75 start( dest_dir, media );
80 if ( PathInfo(dest_dir / key).isExist() )
91 WAR <<
"Signature checking disabled in config of repository " <<
repoInfo().
alias() << endl;
95 start( dest_dir, media );
102 Pathname inputfile( dest_dir +
repoInfo().path() +
"/content" );
105 content.
parse( inputfile );
118 WAR <<
"No signing keys defined." << endl;
125 std::map<std::string,RepoIndex::FileChecksumMap::const_iterator> availablePackageTranslations;
132 static const str::regex rx_packages(
"^packages((.gz)?|(.([^.]*))(.gz)?)$" );
140 else if ( what[4] ==
"FL" )
145 availablePackageTranslations[what[4]] = it;
152 else if ( it->first ==
"patterns.pat"
153 || it->first ==
"patterns.pat.gz" )
167 std::vector<std::string> patparts;
168 unsigned archpos = 2;
170 unsigned count =
str::split( it->first, std::back_inserter(patparts),
"." );
171 if ( patparts[count-1] ==
"gz" )
174 if ( count > archpos )
178 Arch patarch( patparts[count-archpos] );
182 MIL <<
"Discarding pattern " << it->first << endl;
188 WAR <<
"Pattern file name does not contain recognizable architecture: " << it->first << endl;
193 MIL <<
"adding job " << it->first << endl;
201 auto fnc_checkTransaltions( [&](
const Locale & locale_r ) {
204 auto it( availablePackageTranslations.find( toGet.code() ) );
205 if ( it != availablePackageTranslations.end() )
207 auto mit( it->second );
208 MIL <<
"adding job " << mit->first << endl;
218 fnc_checkTransaltions( it );
226 if ( it->first !=
"license.tar.gz" )
229 MIL <<
"adding job " << it->first << endl;
237 MIL <<
"adding job " << it->first << endl;
243 start( dest_dir, media );
248 MIL <<
"Consuming repo index" << endl;