Skip to content

Instantly share code, notes, and snippets.

@yvangodard
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yvangodard/efc655f2e8dd7ce61ae9 to your computer and use it in GitHub Desktop.
Save yvangodard/efc655f2e8dd7ce61ae9 to your computer and use it in GitHub Desktop.
Patch Dia with new bin (https://goo.gl/EalzOG)
#!/bin/sh
#
# Author: Yvan GODARD <godardyvan@gmail.com>
# Ce script applique le patch http://goo.gl/RSQifn
# Le script doit être exécuté par root
[[ `whoami` != 'root' ]] && echo "Ce script doit être utilisé par le compte root. Utilisez 'sudo' si besoin." && exit 1
# Variable emplacement dia - à modifier si vous stockez Dia ailleurs
diaPath="/Applications/Dia.app"
# On tue les process en cours
killall Xquartz > /dev/null 2>&1
killall X11 > /dev/null 2>&1
oldIfs=$IFS
IFS=$'\n'
# On télécharge le bin patché dans le dossier tmp
[[ -e /tmp/dia.new ]] && rm /tmp/dia.new
echo "Téléchargement du patch en cours ..."
curl --progress-bar -Lk https://goo.gl/jD6fZo > /tmp/dia.new
[[ $? -ne 0 ]] && echo "Problème rencontré lors du téléchargement du patch. Celui-ci n'a pas été appliqué. Nous quittons le processus." && exit 1
[[ ! -e ${diaPath} ]] && echo "L'application Dia semble n'être pas disponible à l'emplacement ${diaPath}." && echo "Merci de vérifier, corriger et relancer le patch. Si besoin modidier la variable de la ligne 10 de cet script de patch pour changer l'emplacement par défaut." && exit 1
[[ ! -e /tmp/dia.new ]] && echo "Problème rencontré lors du téléchargement du patch. Le fichier /tmp/dia.new est indisponible. Nous quittons le processus." && exit 1
chmod 777 ${diaPath%/}/Contents/Resources/bin/dia
cat /tmp/dia.new > ${diaPath%/}/Contents/Resources/bin/dia
[[ $? -ne 0 ]] && echo "Problème rencontré lors de l'application du patch sur le fichier ${diaPath%/}/Contents/Resources/bin/dia." && echo "Celui-ci n'a pas été appliqué. Nous quittons le processus." && exit 1
rm /tmp/dia.new > /dev/null 2>&1
IFS=$oldIfs
echo "Le patch a été correctement appliqué sur le fichier ${diaPath%/}/Contents/Resources/bin/dia."
echo "Vous pouvez lancer Dia.app pour tester."
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment