diff --git a/vars/generateDebianChangelog.groovy b/vars/generateDebianChangelog.groovy index 05fb067..0fb89d8 100644 --- a/vars/generateDebianChangelog.groovy +++ b/vars/generateDebianChangelog.groovy @@ -1,66 +1,62 @@ -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 +sh """#!/bin/bash +exec bash <<'EOF' +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}" +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 +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." - """ - } +# 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." +EOF +""" \ No newline at end of file