diff options
author | Katja Marttila <katja.marttila@qt.io> | 2019-10-30 09:50:05 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-03-24 07:38:56 +0200 |
commit | 14a2502c7781a7e8036912767eea990a92dd560c (patch) | |
tree | 0e5137943ee8ebd56892a21f41cde3486ab2c8ba /tools/repogen | |
parent | 4d7c5d092e95f2eb2113780971027e0adfa41440 (diff) |
Add possibility to compress metadata per repository
Added two new configure options for repogen. --unite-metadata will
create both 'old' style meta 7z, which is one per component, and new
style which is one per repository. --unite-metadata-only will create
only new syntax meta 7z. One meta 7z per repository will significantly
decrease the download time if there are several packages in one
repository.
Change-Id: I651b24e93fdef3efb6253ee9b119ebad3bae4d59
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'tools/repogen')
-rw-r--r-- | tools/repogen/repogen.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/tools/repogen/repogen.cpp b/tools/repogen/repogen.cpp index e785ffd04..2d16fa720 100644 --- a/tools/repogen/repogen.cpp +++ b/tools/repogen/repogen.cpp @@ -68,6 +68,13 @@ static void printUsage() std::cout << " -v|--verbose Verbose output" << std::endl; + std::cout << " --unite-metadata Combine all metadata into one 7z. This speeds up metadata " << std::endl; + std::cout << " download phase. Creates also metadata 7z per component for " << std::endl; + std::cout << " backward compatibility." << std::endl; + + std::cout << " --unite-metadata-only Combine all metadata into one 7z. This speeds up metadata " << std::endl; + std::cout << " download phase." << std::endl; + std::cout << std::endl; std::cout << "Example:" << std::endl; std::cout << " " << appName << " -p ../examples/packages repository/" @@ -99,6 +106,8 @@ int main(int argc, char** argv) QInstallerTools::FilterType filterType = QInstallerTools::Exclude; bool remove = false; bool updateExistingRepositoryWithNewComponents = false; + bool createUnitedMetadata = false; + bool createOnlyUnitedMetadata = false; //TODO: use a for loop without removing values from args like it is in binarycreator.cpp //for (QStringList::const_iterator it = args.begin(); it != args.end(); ++it) { @@ -176,7 +185,14 @@ int main(int argc, char** argv) } else if (args.first() == QLatin1String("-r") || args.first() == QLatin1String("--remove")) { remove = true; args.removeFirst(); - } else { + } else if (args.first() == QLatin1String("--unite-metadata")) { + createUnitedMetadata = true; + args.removeFirst(); + } else if (args.first() == QLatin1String("--unite-metadata-only")) { + createOnlyUnitedMetadata = true; + args.removeFirst(); + } + else { printUsage(); return 1; } @@ -281,7 +297,8 @@ int main(int argc, char** argv) QInstallerTools::copyComponentData(directories, repositoryDir, &packages); QInstallerTools::copyMetaData(tmpMetaDir, repositoryDir, packages, QLatin1String("{AnyApplication}"), QLatin1String(QUOTE(IFW_REPOSITORY_FORMAT_VERSION))); - QInstallerTools::compressMetaDirectories(tmpMetaDir, tmpMetaDir, pathToVersionMapping); + QInstallerTools::compressMetaDirectories(tmpMetaDir, tmpMetaDir, pathToVersionMapping, + createUnitedMetadata, createOnlyUnitedMetadata); QDirIterator it(repositoryDir, QStringList(QLatin1String("Updates*.xml")), QDir::Files | QDir::CaseSensitive); while (it.hasNext()) { |