og-jenkins-shared-library/vars/generateDebianChangelog.groovy

46 lines
1.7 KiB
Groovy

def call(String repoDir) {
script {
sh """#!/bin/bash
set -e # Detener la ejecución en caso de error
INPUT_FILE="${repoDir}/changelog.md"
OUTPUT_FILE="${repoDir}/debian/changelog"
PACKAGE_NAME="oggui"
MAINTAINER_NAME="Lucas Lara"
MAINTAINER_EMAIL="tu@email.com"
DISTRIBUTION="unstable"
URGENCY="medium"
BUILD_NUMBER="${BUILD_NUMBER}"
# Función para formatear la fecha en Debian
format_date() {
date -d "\$1" "+%a, %d %b %Y %H:%M:%S %z" 2>/dev/null || date -j -f "%Y-%m-%d" "\$1" "+%a, %d %b %Y %H:%M:%S %z"
}
echo "" > "\$OUTPUT_FILE"
while IFS= read -r line; do
if [[ "\$line" =~ ^##\\ \\[(.*)\\]\\ -\\ ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})\$ ]]; then
BASE_VERSION="\${BASH_REMATCH[1]}"
DATE="\${BASH_REMATCH[2]}-\${BASH_REMATCH[3]}-\${BASH_REMATCH[4]}"
FORMATTED_DATE=\$(format_date "\$DATE")
VERSION="\${BASE_VERSION}-\${BUILD_NUMBER}" # Se agrega el número de build
echo -e "\$PACKAGE_NAME (\$VERSION) \$DISTRIBUTION; urgency=\$URGENCY\\n" >> "\$OUTPUT_FILE"
elif [[ "\$line" =~ ^###\\ (.*) ]]; then
echo -e " * \${BASH_REMATCH[1]}" >> "\$OUTPUT_FILE"
elif [[ "\$line" =~ ^-\\ (.*) ]]; then
echo -e " - \${BASH_REMATCH[1]}" >> "\$OUTPUT_FILE"
elif [[ -z "\$line" ]]; then
echo "" >> "\$OUTPUT_FILE"
fi
done < "\$INPUT_FILE"
echo -e " -- \$MAINTAINER_NAME <\$MAINTAINER_EMAIL> \$(date -R)\\n" >> "\$OUTPUT_FILE"
echo "Changelog generado en formato Debian en \$OUTPUT_FILE."
"""
}
}