def call(String repoDir, String maintainerName = "Qindel Opengnsys Team", String maintainerEmail = "opengnsys@qindel.com") { script { sh """ #!/bin/bash set -e # Detener la ejecución en caso de error set -x # Mostrar los comandos que se ejecutan REPO_DIR="${repoDir}" MAINTAINER_NAME="${maintainerName}" MAINTAINER_EMAIL="${maintainerEmail}" INPUT_FILE="\${REPO_DIR}/CHANGELOG.md" OUTPUT_FILE="\${REPO_DIR}/debian/changelog" PACKAGE_NAME="oggui" DISTRIBUTION="unstable" URGENCY="medium" BUILD_NUMBER="\${BUILD_NUMBER:-1}" # Default en caso de no estar definido # Función para formatear la fecha correctamente en formato Debian format_date() { if date --version >/dev/null 2>&1; then date -d "\$1" "+%a, %d %b %Y %H:%M:%S %z" else date -j -f "%Y-%m-%d" "\$1" "+%a, %d %b %Y %H:%M:%S %z" fi } echo "" > "\$OUTPUT_FILE" first_entry=true version_block_started=false while IFS= read -r line || [[ -n "\$line" ]]; do if [[ "\$line" =~ ^##\ \[(.*)\]\ -\ ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})\$ ]]; then if [ "\$first_entry" = false ] && [ "\$version_block_started" = true ]; then echo -e " -- \$MAINTAINER_NAME <\$MAINTAINER_EMAIL> \$(date -R)\\n" >> "\$OUTPUT_FILE" fi first_entry=false version_block_started=true 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}" 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" if [ "\$version_block_started" = true ]; then echo -e " -- \$MAINTAINER_NAME <\$MAINTAINER_EMAIL> \$(date -R)\\n" >> "\$OUTPUT_FILE" fi echo "✅ Changelog generado en formato Debian en \$OUTPUT_FILE." """ } }