Initialisation
This commit is contained in:
parent
14d47e9be3
commit
590f614c0e
24
README.md
24
README.md
@ -1,3 +1,25 @@
|
|||||||
# git-hooks
|
# hooks
|
||||||
|
|
||||||
Ce dépôt contient les hooks que j'utilise.
|
Ce dépôt contient les hooks que j'utilise.
|
||||||
|
|
||||||
|
## sanitizeFileName.bash
|
||||||
|
|
||||||
|
Ce script permet de supprimer les caractères spéciaux du nom des fichiers. Par exemple *J'fais un test, héhé.md* devient *j-fais-un-test-hehe.md*.
|
||||||
|
|
||||||
|
Le script s'utilise aussi bien en ligne de commande qu'en tant que hook.
|
||||||
|
|
||||||
|
### CLI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pulsar@zazu:~$ bash ~/git/www.ykn.fr/.tools/sanitizeFileName.bash ~/git/www.ykn.fr/content/articles/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hook
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tee ~/git/www.ykn.fr/.git/hooks/pre-commit <<EOF
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
bash ~/git/git-hook/sanitizeFileName.bash ~/git/www.ykn.fr/content/articles
|
||||||
|
EOF
|
||||||
|
```
|
37
sanitizeFileName.bash
Executable file
37
sanitizeFileName.bash
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/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 .
|
Loading…
Reference in New Issue
Block a user