40 lines
1.3 KiB
Bash
Executable File
40 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Chemin vers le fichier contenant le header de licence
|
|
HEADER_FILE="license_header.xml.txt"
|
|
|
|
# Vérifie si le fichier contenant le header existe
|
|
if [[ ! -f "$HEADER_FILE" ]]; then
|
|
echo "Le fichier $HEADER_FILE n'existe pas. Veuillez le créer avant d'exécuter ce script."
|
|
exit 1
|
|
fi
|
|
|
|
# Lit le contenu du header
|
|
HEADER_CONTENT=$(<"$HEADER_FILE")
|
|
|
|
# Ajoute le header après la ligne <?xml ... ?> dans tous les fichiers .xsd, .config et .xml
|
|
#find . -type f \( -name "*.xsd" -o -name "*.config" -o -name "*.xml" \) | while read -r FILE; do
|
|
find . -type f \( -name "*.vbproj" \) | while read -r FILE; do
|
|
echo "Ajout du header dans $FILE..."
|
|
|
|
# Vérifie si le fichier commence par un BOM
|
|
if head -c 3 "$FILE" | grep -q $'\xef\xbb\xbf'; then
|
|
# Le fichier contient un BOM
|
|
echo "Fichier avec BOM détecté : $FILE"
|
|
tail -c +4 "$FILE" > "$FILE.tmp" # Supprime temporairement le BOM
|
|
mv "$FILE.tmp" "$FILE"
|
|
BOM_PRESENT=true
|
|
else
|
|
BOM_PRESENT=false
|
|
fi
|
|
|
|
# Insère le header après la ligne <?xml ... ?>
|
|
awk -v header="$HEADER_CONTENT" -v bom="$BOM_PRESENT" '
|
|
BEGIN { if (bom == "true") printf "\xef\xbb\xbf" } # Réinsère le BOM si nécessaire
|
|
/^<\?xml/ { print; print header; next } # Insère le header après <?xml ... ?>
|
|
{ print }
|
|
' "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"
|
|
done
|
|
|
|
echo "Ajout du header terminé."
|