summaryrefslogtreecommitdiffstats
path: root/tools/binarycreator
diff options
context:
space:
mode:
authorNiels Weber <niels.2.weber@nokia.com>2012-04-02 14:13:02 +0200
committerNiels Weber <niels.2.weber@nokia.com>2012-04-02 16:34:13 +0200
commit22e6708d99a95b02dbb512daa9b70ebeb92b4bcf (patch)
treed66a754c2ddb92634a46e37cd33cbab9968e299b /tools/binarycreator
parent8fde1a8c6421ad7c4a3de67cf5ac66cc71a11541 (diff)
Specify config file instead of hardcoding config.xml
Fixes Task-number: QTIFW-83 Change-Id: I706e08492355e3502e76377f232c94ded5437029 Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Diffstat (limited to 'tools/binarycreator')
-rw-r--r--tools/binarycreator/binarycreator.cpp43
1 files changed, 23 insertions, 20 deletions
diff --git a/tools/binarycreator/binarycreator.cpp b/tools/binarycreator/binarycreator.cpp
index 866b4a4a3..749ad78c8 100644
--- a/tools/binarycreator/binarycreator.cpp
+++ b/tools/binarycreator/binarycreator.cpp
@@ -100,10 +100,10 @@ static void chmod755(const QString &absolutFilePath)
| QFile::ReadGroup | QFile::ExeGroup | QFile::ReadOther | QFile::ExeOther);
}
-static int assemble(Input input, const QString &configdir)
+static int assemble(Input input, const QString &configFile)
{
- const QString configfile = QFileInfo(configdir, QLatin1String("config.xml")).absoluteFilePath();
- const QInstaller::Settings &settings = QInstaller::Settings::fromFileAndPrefix(configfile, configdir);
+ const QString configDir = QFileInfo(configFile).canonicalPath();
+ const QInstaller::Settings &settings = QInstaller::Settings::fromFileAndPrefix(configFile, configDir);
#ifdef Q_OS_LINUX
Q_UNUSED(settings)
@@ -423,10 +423,9 @@ static void printUsage()
}
static QString createMetaDataDirectory(const QInstallerTools::PackageInfoVector &packages,
- const QString &packagesDir, const QString &configdir)
+ const QString &packagesDir, const QString &configFile)
{
- const QString configfile = QFileInfo(configdir, QLatin1String("config.xml")).absoluteFilePath();
- const QInstaller::Settings &settings = QInstaller::Settings::fromFileAndPrefix(configfile, QString());
+ const QInstaller::Settings &settings = QInstaller::Settings::fromFileAndPrefix(configFile, QString());
const QString metapath = createTemporaryDirectory();
generateMetaDataDirectory(metapath, packagesDir, packages, settings.applicationName(),
@@ -434,7 +433,7 @@ static QString createMetaDataDirectory(const QInstallerTools::PackageInfoVector
const QString configCopy = metapath + QLatin1String("/installer-config");
QInstaller::mkdir(configCopy);
- QString absoluteConfigPath = QFileInfo(configdir).absoluteFilePath();
+ QString absoluteConfigPath = QFileInfo(configFile).absolutePath();
QDirIterator it(absoluteConfigPath, QDir::Files | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
while (it.hasNext()) {
@@ -445,7 +444,11 @@ static QString createMetaDataDirectory(const QInstallerTools::PackageInfoVector
qDebug() << "\tFound configuration file: " << next;
const QFileInfo sourceFileInfo(next);
const QString source = sourceFileInfo.absoluteFilePath();
- const QFileInfo targetFileInfo(configCopy, QFileInfo(next).fileName());
+ QFileInfo targetFileInfo(configCopy, QFileInfo(next).fileName());
+
+ if (QFileInfo(next).fileName() == QFileInfo(configFile).fileName())
+ targetFileInfo.setFile(configCopy, QLatin1String("config.xml"));
+
const QDir targetDir = targetFileInfo.dir();
if (!targetDir.exists())
QInstaller::mkpath(targetFileInfo.absolutePath());
@@ -454,7 +457,7 @@ static QString createMetaDataDirectory(const QInstallerTools::PackageInfoVector
if (!QFile::copy(source, target))
throw Error(QObject::tr("Could not copy %1.").arg(source));
- if (sourceFileInfo.fileName().toLower() == QLatin1String("config.xml")) {
+ if (sourceFileInfo.fileName() == QFileInfo(configFile).fileName()) {
// if we just copied the config.xml, make sure to remove the RSA private key from it :-o
QFile configXml(targetDir.filePath(QLatin1String("config.xml")));
configXml.open(QIODevice::ReadOnly);
@@ -480,7 +483,7 @@ static QString createMetaDataDirectory(const QInstallerTools::PackageInfoVector
if (!fi.exists() && fiIcon.exists())
fi = fiIcon;
- if (!fi.exists() || fi.absolutePath() == QFileInfo(configdir).dir().absolutePath())
+ if (!fi.exists() || fi.absolutePath() == QFileInfo(configFile).dir().absolutePath())
continue;
if (fi.isDir())
@@ -527,7 +530,7 @@ int main(int argc, char **argv)
templateBinary = QString::fromLatin1("%1/%2").arg(qApp->applicationDirPath(), templateBinary);
QString target;
- QString configDir;
+ QString configFile;
QString packagesDirectory = QDir::currentPath();
bool onlineOnly = false;
bool offlineOnly = false;
@@ -600,18 +603,18 @@ int main(int argc, char **argv)
return printErrorAndUsageAndExit(QObject::tr("Error: Config parameter missing argument."));
const QFileInfo fi(*it);
if (!fi.exists()) {
- return printErrorAndUsageAndExit(QObject::tr("Error: Config directory %1 not found at the "
+ return printErrorAndUsageAndExit(QObject::tr("Error: Config file %1 not found at the "
"specified location.").arg(*it));
}
- if (!fi.isDir()) {
- return printErrorAndUsageAndExit(QObject::tr("Error: Configuration %1 is not a directory.")
+ if (!fi.isFile()) {
+ return printErrorAndUsageAndExit(QObject::tr("Error: Configuration %1 is not a file.")
.arg(*it));
}
if (!fi.isReadable()) {
- return printErrorAndUsageAndExit(QObject::tr("Error: Config directory %1 is not readable.")
+ return printErrorAndUsageAndExit(QObject::tr("Error: Config file %1 is not readable.")
.arg(*it));
}
- configDir = *it;
+ configFile = *it;
} else if (*it == QLatin1String("-r") || *it == QLatin1String("--resources")) {
++it;
if (it == args.end() || it->startsWith(QLatin1String("-")))
@@ -637,15 +640,15 @@ int main(int argc, char **argv)
if (target.isEmpty())
return printErrorAndUsageAndExit(QObject::tr("Error: Target parameter missing."));
- if (configDir.isEmpty())
- return printErrorAndUsageAndExit(QObject::tr("Error: No configuration directory selected."));
+ if (configFile.isEmpty())
+ return printErrorAndUsageAndExit(QObject::tr("Error: No configuration file selected."));
qDebug() << "Parsed arguments, ok.";
try {
QInstallerTools::PackageInfoVector packages = createListOfPackages(packagesDirectory,
filteredPackages, ftype);
- const QString metaDir = createMetaDataDirectory(packages, packagesDirectory, configDir);
+ const QString metaDir = createMetaDataDirectory(packages, packagesDirectory, configFile);
{
QSettings confInternal(metaDir + QLatin1String("/config/config-internal.ini")
, QSettings::IniFormat);
@@ -688,7 +691,7 @@ int main(int argc, char **argv)
}
qDebug() << "Creating the binary";
- result = assemble(input, configDir);
+ result = assemble(input, configFile);
// cleanup
qDebug() << "Cleaning up...";