diff --git a/src/blackmisc/db/artifact.cpp b/src/blackmisc/db/artifact.cpp index 8262ad701..e7de50d43 100644 --- a/src/blackmisc/db/artifact.cpp +++ b/src/blackmisc/db/artifact.cpp @@ -201,6 +201,24 @@ namespace BlackMisc return unknown; } + CPlatform CArtifact::artifactNameToPlatform(const QString &name) + { + if (name.isEmpty()) { return CPlatform::unknownOs(); } + const QString n(name.toLower().trimmed()); + if (n.contains("-windows-") || n.endsWith(".exe")) + { + if (n.contains("-64-")) { return CPlatform::win64Platform(); } + if (n.contains("-32-")) { return CPlatform::win32Platform(); } + return CPlatform::unknownOs(); + } + + if (n.contains("-macos-") || n.endsWith(".dmg")) { return CPlatform::macOSPlatform(); } + if (n.contains("-linux-") || n.endsWith(".run")) { return CPlatform::linuxPlatform(); } + if (n.contains("-allos-")) { return CPlatform::allOs(); } + + return CPlatform::unknownOs(); + } + QString CArtifact::versionNumberFromFilename(const QString &filename) { if (filename.isEmpty()) { return {}; } diff --git a/src/blackmisc/db/artifact.h b/src/blackmisc/db/artifact.h index c405d81df..4cfdb86ed 100644 --- a/src/blackmisc/db/artifact.h +++ b/src/blackmisc/db/artifact.h @@ -143,6 +143,9 @@ namespace BlackMisc //! Type as string static const QString &typeToString(ArtifactType type); + //! Name to platform + static CPlatform artifactNameToPlatform(const QString &name); + private: QString m_name; //!< channel the files belong to QString m_md5; //!< MD5 checksum