Converting PHP scripts that still use « short-tags »

This is a translation of an older article (original in French).

If you kept bad habits or you just got some old PHP scripts that were still using PHP short tags (i.e. (<? ?> instead of <?php ?>) which are disabled by default in current PHP versions, the following script (shorttags.sh) is for you:

#!/bin/sh
find "$@" -name "*.php" -exec perl -i -wpe 's/<\?=/<?php echo /g' {} \; \
-exec perl -i -wpe 's/<\?(?!php|xml)/<?php /g' {} \;

After downloading this script, make it executable:

chmod +x shorttags.sh

Then you can use it like this (don’t forget to make a backup of your precious scripts, you never know…):

./shorttags.sh /path/to/your/php/files/

Note that you can specify more than one path from this command line.

Nouvelle version de scan2mail, mon script d’archivage de courriers

Je viens de mettre en ligne une nouvelle version de mon script d’archivage de courriers que j’avais publié il y a un peu moins d’un an.

Les principales améliorations sont les suivantes :

  • possibilité de scanner plus de 10 pages sans que l’ordre soit faux
  • le scan recto-verso ne nécessite plus de tourner chaque page individuellement
  • multilingue
  • mises à jour automatiques (peut-être désactivé)
  • possibilité de modifier la configuration du script dans un fichier séparé
  • gestion d’un « carnet d’adresses » pour les destinataires en mode graphique

Pour mémoire, le script peut être utilisé en ligne de commande ou depuis son interface graphique. Si vous souhaitez l’essayer, il suffit de le télécharger, puis de le rendre exécutable (par exemple en faisant clic droit->propriétés->permissions->autoriser l’exécution du fichier comme un programme).

N’hésitez pas à me laisser un commentaire si vous trouvez ce script utile ou si vous avez des propositions d’amélioration !

Script de post-installation pour Ubuntu

À force d’installer Ubuntu pour des gens, je me retrouve souvent à refaire un certain nombre d’opérations identiques sur chacune de ces machines. Cela faisait longtemps que je souhaitais écrire un petit script pour automatiser une bonne partie de ces étapes une fois le système d’exploitation installé afin de gagner du temps.

Le script en action

Le script en action

Fonctionnement

Ce script pose quelques questions à l’utilisateur en début d’exécution, puis installe toute une série de logiciels libres, de polices de caractères, de codecs audio et vidéo, de plugins de navigateur et, si l’utilisateur ne peut s’en passer et le décide, de logiciels propriétaires connus. Pendant l’opération quelques dépôts de logiciels sont ajoutés et une ou deux optimisations sont apportées et toutes les mises à jour disponibles sont finalement installées. Il est facile de modifier le script selon vos besoins personnels en l’éditant avec votre éditeur de texte préféré.

Instructions

Je met à disposition ici ce script pour ceux que cela intéresse (teste sur Ubuntu Jaunty 32 et 64 bits, mais devrait fonctionner avec d’autres versions également) :

  1. enregistrer postinstall.sh
  2. clic droit -> propriétés -> permissions -> « autoriser l’exécution du fichier comme un programme »
  3. double clic sur le fichier et choisir « lancer »

N’hésitez pas à proposer des améliorations !

Mise à jour 3 mai 2009 : J’ai publié ici une nouvelle version de ce script qui tient compte de certains de vos commentaires. Merci !

Mise à jour 4 mai 2009 : J’ai encore publié une nouvelle version de ce script qui corrige certains problèmes et tient compte des nouveaux commentaires.

Mise à jour 5 mai 2009 : Décidément, les commentaires pleuvent ! La nouvelle version du script vérifie désormais si une nouvelle version est disponible et tiens compte de certaines de vos remarques dont je vous remercie. Il est en outre maintenant possible d’exécuter plusieurs fois le script de suite sans avoir des entrées à double dans les fichiers de configuration.

Mise à jour 7 mai 2009 : Encore une nouvelle version. Pour cette version et les prochaines, reportez-vous au changelog (il apparaît automatiquement en cas de mise  à jour automatique).

Archiver ses lettres et factures dans une boîte e-mail

Ayant fait récemment l’acquisition d’une imprimante tout-en-un, disposant d’un scanner à chargement automatique de documents, je me suis décidé à arrêter d’archiver les courriers et factures que je reçois encore par la poste :-( dans des classeurs.

Au lieu d’utiliser un système de GED complet et fastidieux à mettre en place pour une utilisation personnelle, je me suis dit que je pourrai simplement utiliser mon client mail pour classer et rechercher ces documents (un autre avantage est que je peux ainsi fusionner les factures que je reçois par e-mail avec les factures papier).

Je me suis donc concocté un petit script qui permet de scanner un document d’une ou plusieurs pages, recto ou recto-verso, d’en faire un fichier PDF qui sera attaché à un e-mail et, finalement, de mettre dans le corps du message, le texte reconnu par un logiciel de reconnaissance optique de caractères (OCR) ; ceci afin de faciliter la recherche et l’indexation.

Vous le trouverez ci-dessous dans sa première version ; n’hésitez pas à m’envoyer vos commentaires et améliorations.

scan2mail

Mise à jour 12 septembre 2009 : Une nouvelle version vient d’être publiée, rendez-vous sur cet article pour la liste des modifications.

SSH and telnet protocol handler for Firefox

I manage quite a lot of different computers, network devices, etc. As we are using an internal web based documentation system I thought it would be useful to be able to just click on ssh://user@thiscomputer.com and telnet://thisdevice.com links and have Firefox open a terminal where I’d be connected to this specific machine.

As with most things computer related in the Internet era, someone else had already just done that. I modified his script a little bit so it’ll work with links specifying ssh keys and port :

  1. save the following zsh script into a file (let’s call it ~/.scripts/firefox-handler.zsh) (if you don’t have zsh, install it using your package manager or fix the script to use whatever shell you want).
    #!/bin/zsh
    url=$1
    proto=${url//:*/}
    data=${${url//*:\/\//}%/}
    
    #makes -i $HOME/.ssh/id_rsa_foo work
    data=${data//\%20/ }
    data=${data//\$HOME/$HOME}
    #/makes -i $HOME/.ssh/id_rsa_foo work
    
    /usr/bin/gnome-terminal -e "$proto $data"
  2. chmod +x ~/.scripts/firefox-handler.zsh
  3. in Firefox go to about:config and add the following two strings (right-click -> new -> string) network.protocol-handler.app.ssh and network.protocol-handler.app.telnet and put nothing as the value (for a yet unknown reason, it doesn’t work if you specify the path to your script right now)

Restart Firefox, you should now be able to click on ssh and telnet links and also type those URIs in your location bar and it should ask you with what application you want to open it, you can now browse to the location of the previously created script and check the box « don’t ask me again ». As an added bonus, you can also use those URIs as bookmarks which I find quite handy.