Last active
July 2, 2024 08:00
-
-
Save gunzip/ca813c1c2d3e9a6537aef2679f5f3ccc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Directory dei moduli | |
MODULES_DIR=".terraform/modules" | |
HASHES_FILE="tfmodules.lock.json" | |
# Scaricare i moduli | |
terraform init | |
# Funzione per calcolare l'hash di un modulo | |
calculate_hash() { | |
local module_path="$1" | |
tar -cf - "$module_path" | sha256sum | awk '{ print $1 }' | |
} | |
# Verificare se il file di hash esiste e creare uno vuoto se non esiste | |
if [ ! -f "$HASHES_FILE" ]; then | |
echo "{}" > "$HASHES_FILE" | |
fi | |
# Iterare su tutti i moduli scaricati | |
for module_path in "$MODULES_DIR"/*; do | |
if [ -d "$module_path" ]; then | |
module_name=$(basename "$module_path") | |
new_hash=$(calculate_hash "$module_path") | |
# Verificare l'hash precedente dal file JSON | |
previous_hash=$(jq -r --arg module "$module_name" '.[$module]' "$HASHES_FILE") | |
if [ "$previous_hash" == "null" ]; then | |
# Salvare il nuovo hash se non esiste un hash precedente | |
jq --arg module "$module_name" --arg hash "$new_hash" '.[$module] = $hash' "$HASHES_FILE" > tmp.$$.json && mv tmp.$$.json "$HASHES_FILE" | |
echo "Salvataggio del nuovo hash del modulo $module_name." | |
else | |
# Confrontare gli hash | |
if [ "$previous_hash" == "$new_hash" ]; then | |
echo "Il modulo $module_name non è cambiato." | |
else | |
echo "Il modulo $module_name è stato modificato!" | |
# Uscire con errore dopo aver registrato il messaggio | |
exit 1 | |
fi | |
fi | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment