-
-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
In AppImage we can:
#include <QDir>
#include <QFile>
#include <QHash>
#include <QRegularExpression>
#include <QTextStream>
QHash<QString, QString> buildLicenseHash(const QString &docRoot)
{
QHash<QString, QString> result;
QDir dir(docRoot);
QStringList packages = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
for (const QString &pkg : packages) {
QString copyrightFile =
docRoot + "/" + pkg + "/copyright";
if (QFile::exists(copyrightFile)) {
QString license = extractLicense(copyrightFile);
result.insert(pkg, license);
}
}
return result;
}
QString extractLicense(const QString &filePath)
{
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return {};
QTextStream in(&file);
QRegularExpression re(R"(^License:\s*(.+))");
while (!in.atEnd()) {
QString line = in.readLine();
auto match = re.match(line);
if (match.hasMatch()) {
return match.captured(1).trimmed();
}
}
return "Unknown";
}
No idea about win32, not macos.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Projects
Status
Backlog