fix: prevent duplicate version tags in Joomla manifests #322

Merged
jmiller merged 1 commits from fix/version-bump-duplicates into main 2026-06-27 00:48:18 +00:00
3 changed files with 17 additions and 5 deletions
+7 -2
View File
@@ -214,7 +214,8 @@ class VersionBumpCli extends CliFramework
$newContent = preg_replace(
$xmlPattern,
'${1}' . $newBase . '</version>',
$content
$content,
1
);
} else {
$xmlPattern = '#<version>\d{2}\.\d{2}\.\d{2}'
@@ -222,9 +223,13 @@ class VersionBumpCli extends CliFramework
$newContent = preg_replace(
$xmlPattern,
"<version>{$newFull}</version>",
$content
$content,
1
);
}
if ($newContent !== null) {
$newContent = preg_replace('#(\s*<version>[^<]*</version>)\s*<version>[^<]*</version>#', '$1', $newContent);
}
if ($newContent !== null && $newContent !== $content) {
file_put_contents($xmlFile, $newContent);
$updatedFiles[] = substr($xmlFile, strlen($root) + 1);
+5 -2
View File
@@ -131,9 +131,11 @@ class VersionCheckCli extends CliFramework
$updated = preg_replace(
$vPat,
"<version>{$highestVersion}</version>",
$content
$content,
1
);
if ($updated !== null) {
$updated = preg_replace('#(\s*<version>[^<]*</version>)\s*<version>[^<]*</version>#', '$1', $updated);
file_put_contents($mokoManifest, $updated);
} echo " Fixed: .mokogitea/manifest.xml -> {$highestVersion}\n";
}
@@ -185,8 +187,9 @@ class VersionCheckCli extends CliFramework
if (!file_exists($file)) {
continue;
} $content = file_get_contents($file);
$updated = preg_replace('#<version>[^<]*</version>#', "<version>{$highestVersion}</version>", $content);
$updated = preg_replace('#<version>[^<]*</version>#', "<version>{$highestVersion}</version>", $content, 1);
if ($updated !== null) {
$updated = preg_replace('#(\s*<version>[^<]*</version>)\s*<version>[^<]*</version>#', '$1', $updated);
file_put_contents($file, $updated);
} echo " Fixed: {$source} -> {$highestVersion}\n";
}
+5 -1
View File
@@ -164,8 +164,12 @@ class VersionSetPlatformCli extends CliFramework
$updated = preg_replace(
'|<version>[^<]*</version>|',
"<version>{$version}</version>",
$content
$content,
1
);
if ($updated !== null) {
$updated = preg_replace('#(\s*<version>[^<]*</version>)\s*<version>[^<]*</version>#', '$1', $updated);
}
if ($updated !== null && $updated !== $content) {
file_put_contents($file, $updated);
$relPath = str_replace($root . '/', '', $file);