Initialisation
This commit is contained in:
		
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
								
							@@ -1,3 +1,25 @@
 | 
			
		||||
# git-hooks
 | 
			
		||||
# hooks
 | 
			
		||||
 | 
			
		||||
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 .
 | 
			
		||||
		Reference in New Issue
	
	Block a user