Initialisation
This commit is contained in:
parent
14d47e9be3
commit
590f614c0e
26
README.md
26
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