cipherbliss_blog

convertir un projet javascript en coffeescript

le jS ça fait aussi le café.Si vous voulez reprendre d'anciens projets en javascript pour envoyer promener toutes ces accolades et autres points virgules, réjouissez vous, car voici de quoi convertir un dossier et ses sous dossiers en fichiers coffeescript.

il faut donc copier votre dossier de scripts js dans un dossier nommé coffee, obtenir la liste des fichiers à convertir et exécuter la conversion sur chacun d'eux.

basé sur le convertisseur js2coffee (voir ce projet sur github), voici mon script bash adapté de [[https://stackoverflow.com/questions/14091818/converting-whole-project-to-coffeescript-with-js2coffee/14091820#14091820][ce merveilleux script bash trouvé sur stack overflow]]:pour plus de clarté je lui ai rajouté un côté explicite des actions menées et quelques couleurs.

#!/bin/bash#text formattingneutre='\e[0;m'bleuclair='\e[1;34m'bold=$(tput bold)normal=$(tput sgr0)# get the name of the js scripts folderecho -e "${bleuclair} ${bold} conversion de projet ${normal} vers coffeescript "read -p "nommez le dossier où se trouvent vos scripts .js [js]: " -e -i "js" name# if the coffee folder doesnt exist, create itif [ ! -e coffee ]; thenecho "pas de dossier coffee, on le crée"mkdir coffeefiecho -e " copie du dossier ${bleuclair}${bold}${name}${normal} vers le dossier ${bold}coffee${normal} ${neutre}"cp -R ${name}/* coffeeecho "lire les fichiers du dossier coffee"# list files and exclude node modulesCOUNTER=0for FILE in `find coffee -name "*.js" -type f -o -path './node_modules' -prune -o -path './components' -prune`doif [ -e $FILE ] ; thenCOFFEE=${FILE//\.js/\.coffee}echo -e "    converting ${FILE} to ${bleuclair}${COFFEE}${neutre}${normal}"js2coffee "$FILE" > "$COFFEE"rm $FILECOUNTER=$((COUNTER+1))elseecho "File: $1 does not exist!"fidoneecho -e "${bleuclair}${bold} $COUNTER ${normal}${neutre} fichiers convertis"cd ../

vous pouvez enregistrer ce script bash sous le nom de alljs2coffee.shle copier dans votre répertoire d'exécutables,

cp alljs2coffee.sh /usr/local/bin

lui donner les droits pour être exécuté par tout le monde 

chmod +x alljs2coffee.sh

et voilà vous pourrez l'exécuter dans n'importe quel dossier contenant un de vos projets avec la commande alljs2coffee

go go gadgetto modernisation du JS!

voir l'issue sur github. comme toujours, si vous avez des amélioratoins à proposez faites donc!