1
0
git-hooks/sanitizeFileName.bash

38 lines
1.0 KiB
Bash
Raw Normal View History

2020-11-24 13:58:21 +00:00
#!/bin/bash
# Aller dans le dossier passer en paramètre
cd $1
# Boucler sur les fichiers Markdown
for file in *.md; do
# Séparer le nom de l'extension
fileExtension="${file##*.}"
fileName="${file%.*}"
# Convertir les noms avec accents par ceux sans
fileName=$(echo $fileName | iconv -f utf8 -t ascii//TRANSLIT;)
# Passer en minuscule
fileName=$(echo $fileName | awk '{print tolower($0)}')
# Supprimer les caractères spéciaux
fileName=$(echo $fileName | sed $'s/\'/-/g')
fileName=$(echo $fileName | sed $'s/\,//g')
fileName=$(echo $fileName | sed $'s/[^.[:blank:][:alnum:]\t]-//g')
# Supprimer l'espace en fin de ligne
fileName=$(echo $fileName | sed 's/ \.md/\.md/g')
# Remplacer les espaces par des _
fileName=$(echo $fileName | sed 's/ /-/g')
# Créer le nouveau nom de fichier
sanitized="${fileName}.${fileExtension}"
# SI le nom du fichier a été assainit, ALORS renommer le fichier
[[ "${file}" != "${sanitized}" ]] && mv "${file}" "${sanitized}"
done
# Prendre en compte le changement
git add .