Archives mensuelles : décembre 2009

Ajouter la puissance de bash_completion à votre projet Symfony

En général les utilisateurs réguliers d’un système Linux connaissent les avantages de l’utilisation du package bash_completion, et bien voici une astuce pour que cela soit applicable à un projet Symfony. Bon je ne suis pas développeur, mes bases étant un peu limitées, mais étant amené à utiliser pas mal de projets Symfony dans le cadre de mon travail, j’ai eu vent de cette astuce. Tout d’abord il faut créer un fichier dans votre home avec comme nom .bash_completion . S’il existe déjà, nous mettrons à jour ce dernier.

_symfony()
{
local cur prev action
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
action=${COMP_WORDS[1]}

case « $prev » in
« init-module »| »propel-generate-crud »| »propel-init-crud »| »propel-init-admin »| »generate:module »| »propel:generate-crud »| »propel:init-admin »)
COMPREPLY=( $( compgen -W « $( ls -1 apps 2>/dev/null | sed -e ‘s/ /\\ /g’ | sed -e ‘s/\/$//g’ ) » — $cur ) )

return 0
;;

« init-project »| »generate:project »)
COMPREPLY=( $( compgen -W « $( pwd | perl -pe « s/^.*?([^\/]+)$/\$1/g » ) » — $cur ) )

return 0
;;

« init-app »| »generate:app »)
COMPREPLY=( $( compgen -W « frontend backend » — $cur ) )

return 0
;;

« sync »)
if (($COMP_CWORD == 3)); then
COMPREPLY=( $( compgen -W ‘go’ — $cur))
fi

return 0
;;

*symfony)
SYMFONY_VERSION=$( $prev -V | sed ‘s/^symfony version //g’ | awk -F ‘.’ ‘{print $1 « . » $2;}’ )

case « $SYMFONY_VERSION » in
0.*)
# Versions less than 1.0 are not supported.
COMPREPLY=()
;;

« 1.0 »)
COMPREPLY=( $( compgen -W « $( $prev -T | awk ‘/^  /’ | cut -d ‘ ‘ -f 3 ) » — $cur ) )
;;

*)
COMPREPLY=( $( compgen -W « $(
NAMESPACE= »
OLD_IFS=$IFS

IFS=$’\n’
for line in $( $prev -T ); do
if [ $line != ‘Available tasks:’ ]; then
if [ ${line:0:2} == ‘  ‘ ]; then
TASK=$(echo $line | awk -F ‘:’ ‘{print $2;}’ | cut -d ‘ ‘ -f 1)
if [ -z $NAMESPACE ]; then
echo $TASK
else
echo $NAMESPACE:$TASK
fi
else
NAMESPACE=$line
fi
fi
done

IFS=$OLD_IFS
) » — $cur ) )

# Work-around bash_completion issue where bash interprets a colon as a separator.
# Work-around borrowed from the darcs work-around for the same issue.
local colonprefixes=${cur% »${cur##*:} »}
local i=${#COMPREPLY[*]}
while [ $((–i)) -ge 0 ]; do
COMPREPLY[$i]=${COMPREPLY[$i]# »$colonprefixes »}
done
;;
esac

return 0
;;

*)
case « $action » in
« propel-generate-crud »| »propel-init-crud »| »propel-init-admin »| »propel:generate-crud »| »propel:init-admin »)
if (($COMP_CWORD == 3)); then
COMPREPLY=( $( compgen -W « $( find lib/model -maxdepth 1 -name ‘*.php’ -exec basename ‘{}’ ‘.php’ ‘;’ | grep -v ‘Peer$’ | tr [:upper:] [:lower:] ) » — $cur ) )
elif (($COMP_CWORD == 4)); then
COMPREPLY=( $( compgen -W « $( find lib/model -maxdepth 1 -name ‘*.php’ -exec basename ‘{}’ ‘.php’ ‘;’ | grep -v ‘Peer$’ ) » — $cur ) )
fi

return 0
;;
esac

return 0
;;
esac

return 0
}

complete -F _symfony symfony

Modifier votre fichier .bashrc pour y ajouter : [ -f ~/.bash-completion ] && source ~/.bash-completion

Enfin pour bénéficier immédiatement de ses effets, relancer bash, ou plus proprement  tapez « source ~/.bashrc ».

Et voilà vous aussi vous aurez ainsi accès à l’auto-complétion pour votre projet Symfony :

[user@nommachine monrep]$ ./symfony monprojet-matache matache-action:realize

Et voila pour cette astuce. Si mes souvenirs sont bons, la Source initiale provient du wiki de Symfony et notamment de la section « update » du lien précédent. Personnellement je l’ai testé sur une Mandriva 2008.1 et cela avait fonctionné.

Installer Google Chrome (Chromium) sur Mandriva 2008.1 et supérieures

Google_Chrome

Etant donné que c’est à la mode et que certains collègues ont déjà craqués, j’ai réalisé l’installation de Chrome sur mon poste de travail. Bon d’accord je suis sous Mandriva 2008.1 ce qui commence à dater un petit peu, mais cela tourne bien donc 😉 Voici une astuce pour l’installer assez facilement :

  1. Télécharger l’archive chrome-linux.zip depuis http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/ (choisissez la dernière version)
  2. Décompresser le zip (unzip chrome-linux.zip) dans un dossier au choix (moi je l’ai fais dans mon home, dans un dossier juste pour lui).
  3. En tant que root, créer des liens symbolique vers les bibliothèques nécessaires à son fonctionnement
    1. ln -s /usr/lib/libnss3.so /usr/lib/libnss3.so.1d
    2. ln -s /usr/lib/libnssutil3.so /usr/lib/libnssutil3.so.1d
    3. ln -s /usr/lib/libsmime3.so /usr/lib/libsmime3.so.1d
    4. ln -s /usr/lib/libssl3.so /usr/lib/libssl3.so.1d
    5. ln -s /usr/lib/libplds4.so /usr/lib/libplds4.so.0d
    6. ln -s /usr/lib/libplc4.so /usr/lib/libplc4.so.0d
    7. ln -s /usr/lib/libnspr4.so /usr/lib/libnspr4.so.0d
    8. ln -s /usr/lib/libbz2.so.1 /usr/lib/libbz2.so.1.0
  4. Modifier les droits de ce dossier : chown -R user: ./chrome-linux
  5. En tant qu’utilisateur normal, lancer ./chrome
  6. Ou bien ajouter un raccourci dans le menu kde ou gnome 🙂

Amusez vous bien avec ce nouveau navigateur 🙂 Bon d’accord je commence à avoir un peu trop de navigateur sur ma machine mais bon … Firefox, Konqueror, SeaMonkey … A force je devrais avoir une jolie collection 😀

Source initiale

Erratum : il existe un autre moyen d’installer la version officielle en la téléchargeant sur le site de Google Chrome. Vous y trouverez des .deb pour Ubuntu et Debian (j’ai testé le .deb pour la 8.04 et cela s’est installé sans aucun souci), et des rpm pour Fedora et OpenSuse. Le rpm a pu être installé sur des Mandriva 2009.0 et 2009.1 (et doit donc fonctionner sur des versions plus récentes aussi). On a juste du rajouter une option pour ne pas suivre les dépendances lors de l’installation. C’est parce que cette installation n’a pas fonctionné pour moi que j’ai cherché la méthode explicité ci-dessus 🙂 Voila j’ai presque dû faire le tour, mais j’avoue que je continue à préférer Firefox à Google … 1984 m’a trop marqué 😉

2010-02-11 Complément d’information : sur Eugeni’s Blog vous pourrez trouver l’adresse d’un dépôt pour un rpm de Chrome.

L’œil du Dragon – le Blog de Alan sur la photographie

Oui je sais que je n’ai pas posté depuis quelques temps mais j’avoue que je suis bien pris avec le CNAM ces derniers temps.  Je ne m’en plains pas car cela me donne un objectif à long terme et une raison valide d’avancer 😉 Enfin ceci n’est pas le propos de cet article car je souhaitais parler du Blog de Alan :

L’œil du Dragon, la photographie dans tout ses états

Bon la majorité des articles traiteront de techniques photographiques assez poussées comme le montre le premier article, mais si vous êtes fan de photo ou professionnel, n’hésitez pas à le visiter, voire à commenter certains articles. Cette mise en ligne correspond aussi à la fin de son forum. En effet à force de ne voir personne participer on se lasse un peu, donc quitte à juste diffuser de l’information, autant que cela lui soit plus utile, plus constructif, plus agréable. Je souhaite donc une longue vie à son blog et si cela fait un certains temps que vous n’êtes pas allé visiter son site allez-y, il y a de nouvelles galeries : http://www.alan-clech.eu.