|
# Script de PowerShell para taggear, añadir la versión en un fichero y pushear al servidor release |
|
|
|
param ( |
|
[string]$command, |
|
[string]$versionString |
|
) |
|
|
|
# Ruta del archivo |
|
$file = ".\resources\views\includes\version.blade.php" |
|
|
|
# Función para mostrar el contenido del archivo |
|
function ShowContent { |
|
try { |
|
$content = Get-Content $file -Raw |
|
$trimmedContent = $content.Trim() |
|
return $trimmedContent |
|
} catch { |
|
Write-Host "Error: No se pudo encontrar el archivo $file. Por favor, crea el archivo o corrige la ruta en el script." |
|
} |
|
} |
|
|
|
# Función para obtener la última versión numérica del archivo |
|
function GetLastNumericVersion { |
|
$content = ShowContent |
|
$regex = "\d+(\d+)*" |
|
$lastVersion = [regex]::Matches($content, $regex) | ForEach-Object { $_.Value } | Select-Object -Last 1 |
|
$lastVersion |
|
} |
|
|
|
function IncrementVersionAndConfirm { |
|
$content = ShowContent |
|
$lastNumericVersion = GetLastNumericVersion |
|
|
|
if ($content -eq $null) { |
|
$content = "0" |
|
} |
|
|
|
# Buscar la última secuencia numérica consecutiva |
|
$matches = [Regex]::Matches($content, '\d+') |
|
|
|
if ($matches.Count -gt 0) { |
|
# Obtener la última secuencia numérica |
|
$lastNumeric = $matches[$matches.Count - 1].Value |
|
|
|
# Obtener la posición de la última secuencia numérica |
|
$lastNumericIndex = $matches[$matches.Count - 1].Index |
|
|
|
# Separar el prefix y postfix |
|
$prefix = $content.Substring(0, $lastNumericIndex) |
|
$postfix = $content.Substring($lastNumericIndex + $lastNumeric.Length) |
|
|
|
# Incrementar la parte numérica |
|
$newNumeric = [int]$lastNumeric + 1 |
|
|
|
# Construir la nueva versión |
|
$newVersion = "$prefix$newNumeric$postfix" |
|
Write-Host "Versión anterior: $content" |
|
Write-Host "Nueva versión propuesta: $newVersion" |
|
|
|
$confirm = Read-Host "¿Deseas utilizar esta nueva versión? [Y/n]" |
|
if ($confirm -eq 'Y' -or $confirm -eq 'y' -or $confirm -eq '') { |
|
return $newVersion |
|
} else { |
|
Write-Host "No se ha confirmado la nueva versión." |
|
exit |
|
} |
|
} else { |
|
Write-Host "Error: No se encontró ninguna parte numérica en la versión." |
|
exit |
|
} |
|
} |
|
|
|
# Función para actualizar la versión en el archivo y realizar el commit y tag en git |
|
function UpdateVersionAndCommit { |
|
param ( |
|
[string]$versionToUpdate |
|
) |
|
|
|
# Actualizar la versión en el archivo |
|
Write-Host "UpdateVersionAndCommit: $versionToUpdate" |
|
Set-Content -Path $file -Value "$versionToUpdate" |
|
|
|
# Realizar commit en git |
|
git add --all |
|
# git add $file |
|
git commit -m $versionToUpdate |
|
git push origin $(git rev-parse --abbrev-ref HEAD) |
|
|
|
# Crear y pushear el tag en git |
|
git tag $versionToUpdate |
|
# git push origin $versionToUpdate |
|
git push origin --tags |
|
} |
|
|
|
# Manejar comandos |
|
if ($command -eq $null -or $command -eq "show") { |
|
ShowContent |
|
} elseif ($command -eq "version") { |
|
if (-not $versionString) { # $versionString -eq $null |
|
$versionString = IncrementVersionAndConfirm |
|
} |
|
|
|
if ($versionString -ne $null) { |
|
UpdateVersionAndCommit -versionToUpdate $versionString |
|
} |
|
} else { |
|
Write-Host "Comando no válido." |
|
Write-Host "Uso: .\tag.ps1 show o .\tag.ps1 version <version_string>" |
|
ShowContent |
|
} |