From 7165cb5b1f5678fd4f35a7e383b27defd1ab8314 Mon Sep 17 00:00:00 2001 From: Matthias Goudjil Date: Thu, 4 Jul 2024 15:17:44 +0200 Subject: [PATCH] feat: [pack:all command] - related #354 - finally update increment_versions script --- package.json | 2 +- scripts/create_packages_tars.sh | 6 --- scripts/increment_versions.sh | 75 +++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 7 deletions(-) delete mode 100755 scripts/create_packages_tars.sh create mode 100755 scripts/increment_versions.sh diff --git a/package.json b/package.json index 667f82a5..618cbed7 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "chromatic": "chromatic", "dev": "pnpm --filter @prestashopcorp/puik-playground dev", "component": "hygen component new", - "pack:all": "scripts/create_packages_tars.sh && pnpm -r --parallel --filter './packages/**' exec pnpm pack --pack-destination ../../packages-tars", + "pack:all": "pnpm -r --parallel --filter './packages/**' exec pnpm pack --pack-destination ../../packages-tars/tmp && scripts/increment_versions.sh", "prepare": "husky install", "preinstall": "npx only-allow pnpm -y" }, diff --git a/scripts/create_packages_tars.sh b/scripts/create_packages_tars.sh deleted file mode 100755 index 80e7630c..00000000 --- a/scripts/create_packages_tars.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -# Create packages-tars directory if it does not exist -if [ ! -d "./packages-tars" ]; then - mkdir -p "./packages-tars" -fi diff --git a/scripts/increment_versions.sh b/scripts/increment_versions.sh new file mode 100755 index 00000000..a66e664f --- /dev/null +++ b/scripts/increment_versions.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# Chemin vers le fichier versions.json +VERSIONS_FILE="./packages-tars/versions.json" + +# Créez les répertoires packages-tars et packages-tars/tmp s'ils n'existent pas +if [ ! -d "./packages-tars" ]; then + mkdir -p "./packages-tars" +fi + +if [ ! -d "./packages-tars/tmp" ]; then + mkdir -p "./packages-tars/tmp" +fi + +# Parcourez tous les fichiers .tgz dans packages-tars/tmp +for TGZ_PATH in ./packages-tars/tmp/*.tgz; do + # Extrait le nom du package du nom de fichier .tgz + PACKAGE_NAME=$(basename $TGZ_PATH | sed -n -e 's/^prestashopcorp-\(.*\)-[0-9]*\.[0-9]*\.[0-9]*\.tgz$/\1/p') + + echo "Traitement de $PACKAGE_NAME..." + + # Vérifie si versions.json existe, sinon, créez-le + if [ ! -f "$VERSIONS_FILE" ]; then + echo "Création de $VERSIONS_FILE..." + echo "{}" > $VERSIONS_FILE + fi + + # Lisez la version actuelle du package à partir de versions.json + CURRENT_VERSION=$(grep -Po "\"$PACKAGE_NAME\": \"\K[^\"]+" $VERSIONS_FILE) + + # Si aucune version n'est trouvée, utilisez 0.0.0-test-0 par défaut et ajoutez une nouvelle entrée à versions.json + if [ -z "$CURRENT_VERSION" ]; then + echo "Aucune version actuelle trouvée pour $PACKAGE_NAME. Utilisation de 0.0.0-test-0 par défaut..." + CURRENT_VERSION="0.0.0-test-0" + # Ajoutez une virgule si versions.json n'est pas vide + if [ "$(cat $VERSIONS_FILE)" != "{}" ]; then + sed -i "s/}/, \"${PACKAGE_NAME}\": \"${CURRENT_VERSION}\"}/" $VERSIONS_FILE + else + echo "{\"$PACKAGE_NAME\": \"$CURRENT_VERSION\"}" > $VERSIONS_FILE + fi + fi + + echo "La version actuelle de $PACKAGE_NAME est $CURRENT_VERSION." + + # Incrémentez la version + IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION" + VERSION_BASE="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.${VERSION_PARTS[2]}" + + # Initialisez le suffixe de la version de test + TEST_VERSION_SUFFIX=0 + + # Vérifiez si la version de base a déjà un suffixe de test + if [[ $CURRENT_VERSION == *"-test-"* ]]; then + # Extrait le suffixe de la version de test + TEST_VERSION_SUFFIX=$(echo $CURRENT_VERSION | sed -n -e 's/^.*-test-\([0-9]*\)$/\1/p') + # Supprimez le suffixe de test existant de la version de base + VERSION_BASE=$(echo $VERSION_BASE | sed -n -e 's/^\(.*\)-test-.*$/\1/p') + fi + + # Incrémentez le suffixe de la version de test + TEST_VERSION_SUFFIX=$((TEST_VERSION_SUFFIX + 1)) + + # Construisez la nouvelle version + NEW_VERSION="${VERSION_BASE}-test-${TEST_VERSION_SUFFIX}" + + echo "La nouvelle version de $PACKAGE_NAME est $NEW_VERSION." + + # Mettez à jour versions.json avec la nouvelle version + echo "Mise à jour de $VERSIONS_FILE avec la nouvelle version pour $PACKAGE_NAME..." + sed -i "s/\"$PACKAGE_NAME\": \"$CURRENT_VERSION\"/\"$PACKAGE_NAME\": \"$NEW_VERSION\"/" $VERSIONS_FILE + + # Déplacez et renommez le fichier .tgz + echo "Déplacement de $TGZ_PATH vers ./packages-tars/prestashopcorp-$PACKAGE_NAME-$NEW_VERSION.tgz..." + mv "$TGZ_PATH" "./packages-tars/prestashopcorp-$PACKAGE_NAME-$NEW_VERSION.tgz" +done