}
QString gitroot = argv[1];
QString target = argv[2];
- QString version;
+ QString version, commit, archivetime;
if(QFile::exists(gitroot + "/.git")) {
// try to execute git-describe to get a version string
QProcess git;
git.setWorkingDirectory(gitroot);
- git.start("git-describe", QStringList("--long"));
+ git.start("git", QStringList() << "describe" << "--long");
if(git.waitForFinished(10000)) {
QString gitversion = git.readAllStandardOutput();
if(!gitversion.isEmpty() && !gitversion.contains("fatal")) {
// seems we have a valid version string, now prettify it...
// check if the workdir is dirty first
QString dirty;
- QStringList params = QStringList() << "--name-only" << "HEAD";
- git.start("git-diff-index", params);
+ QStringList params = QStringList() << "diff-index" << "--name-only" << "HEAD";
+ git.start("git", params);
if(git.waitForFinished(10000)) {
if(!git.readAllStandardOutput().isEmpty()) dirty = "*";
}
// hmm, Git failed... let's check for version.dist instead
QFile dist(gitroot + "/version.dist");
if(dist.open(QIODevice::ReadOnly | QIODevice::Text)) {
- version = dist.readAll();
+ QRegExp rxCommit("(^[0-9a-f]+)");
+ QRegExp rxTimestamp("(^[0-9]+)");
+ if(rxCommit.indexIn(dist.readLine()) > -1) commit = rxCommit.cap(1);
+ if(rxTimestamp.indexIn(dist.readLine()) > -1) archivetime = rxTimestamp.cap(1);
dist.close();
}
}
}
gen.write(QString("quasselGeneratedVersion = \"%1\";\n"
"quasselBuildDate = \"%2\";\n"
- "quasselBuildTime = \"%3\";\n").arg(version).arg(__DATE__).arg(__TIME__).toAscii());
+ "quasselBuildTime = \"%3\";\n"
+ "quasselCommit = \"%4\";\n"
+ "quasselArchiveDate = %5;\n")
+ .arg(version).arg(__DATE__).arg(__TIME__).arg(commit).arg(archivetime.toUInt()).toAscii());
gen.close();
return EXIT_SUCCESS;
}