diff --git a/src/main/kotlin/data/InstallerManifestData.kt b/src/main/kotlin/data/InstallerManifestData.kt index 7291ef30..1bc453e4 100644 --- a/src/main/kotlin/data/InstallerManifestData.kt +++ b/src/main/kotlin/data/InstallerManifestData.kt @@ -107,13 +107,19 @@ class InstallerManifestData : KoinComponent { val publisher = sharedManifestData.publisher ?: previousManifestData.remoteDefaultLocaleData?.publisher val displayVersion = sharedManifestData.msi?.productVersion ?: displayVersion return copy( - displayName = if (arpDisplayName != packageName) arpDisplayName else null, + displayName = if (arpDisplayName != packageName) arpDisplayName?.updateDisplayName() else null, publisher = if (arpPublisher != publisher) arpPublisher else null, displayVersion = if (displayVersion != sharedManifestData.packageVersion) displayVersion else null, upgradeCode = sharedManifestData.msi?.upgradeCode ?: upgradeCode ) } + private fun String.updateDisplayName(): String { + return sharedManifestData.allVersions?.joinToString("|") { it } + ?.let { replaceFirst(Regex(it), sharedManifestData.packageVersion) } + ?: this + } + fun createInstallerManifest(): String { val installersLocaleDistinct = installers.mapNotNull { it.installerLocale }.distinct().size == 1 val releaseDateDistinct = installers.mapNotNull { it.releaseDate }.distinct().size == 1 diff --git a/src/main/kotlin/data/SharedManifestData.kt b/src/main/kotlin/data/SharedManifestData.kt index a3bed2fd..db2036c1 100644 --- a/src/main/kotlin/data/SharedManifestData.kt +++ b/src/main/kotlin/data/SharedManifestData.kt @@ -17,6 +17,7 @@ class SharedManifestData : KoinComponent { var defaultLocale: String = "" var updateState: VersionUpdateState? = null var latestVersion: String? = null + var allVersions: List? = null var msix: Msix? = null var msixBundle: MsixBundle? = null var msi: Msi? = null diff --git a/src/main/kotlin/data/shared/PackageIdentifier.kt b/src/main/kotlin/data/shared/PackageIdentifier.kt index 6eaf7b16..4a599305 100644 --- a/src/main/kotlin/data/shared/PackageIdentifier.kt +++ b/src/main/kotlin/data/shared/PackageIdentifier.kt @@ -78,6 +78,7 @@ object PackageIdentifier : KoinComponent { if (it.isNotEmpty() && writeOutput) info("Found $packageIdentifier in the winget-pkgs repository") } ?.map { it.name } + ?.also { sharedManifestData.allVersions = it } ?.let { PackageVersion.getHighestVersion(it) } ?.also { if (writeOutput) info("Found latest version: $it") } .also { sharedManifestData.latestVersion = it }