11/08/08
Fonction bash pour création de XPI

Bon, zipper un dossier avec une interface graphique, c'est pas que ce soit la loose, quoique, mais encore faudra-t-il modifier l'extension de zip à xpi[1], une fois que ce sera fini… imaginons que vous faites çà à chaque fois que vous modifiez l'extension sur laquelle vous êtes en train de travailler[2]… et vous allez vite devenir fou !
Aussi, c'est pourquoi, je me suis écrit une petit fonction[3] pour mettre dans mon ~/.bash_aliases[4] :
function xpif () { if [ ! -z "${1}" ]; then CPATH="$(pwd)" ZNAME="$(basename "${1}")" UPATH="$(dirname "${1}")" ZARGS='-rT' cd "$1" && { [[ -e "../${ZNAME}.xpi" ]] && { find "$(pwd)" \( -name ".DS_Store" -or -name ".Trashes" -or -name "._*" \) -exec rm -rf "{}" \; -prune cp "../${ZNAME}.xpi" "$(pwd)" ZARGS='-urT' } zip "${ZARGS}" "${ZNAME}.xpi" * && mv "${ZNAME}.xpi" "../" || { rm "${ZNAME}.xpi" printf " ${ZNAME}.xpi: does not need any change\n" >&1 } } && cd "$CPATH" || cd "$CPATH" return 0 else printf " xpif requires an argument\n" >&2 return 1 fi }
la fonction reçoit simplement en argument le dossier à changer en xpi… en utilisant, évidemment, la commande zip.
Notes
[1] Ouvrir les XPI avec The Unarchiver
[2] How to create Firefox extensions
[3] à défaut d'en faire un "vrai script"
