La variable qui contenait le numéro de version installée sur le système à changer, j’ai mis à jour le script pour prendre en compte les anciennes versions de Chromium et les nouvelles.
# !/bin/sh # Créer par Alexis Greppo # Site : https://www.zen-tech.info function get_sys_version { # On récupère la version installée actuellement if [ -f "/Applications/Chromium.app/Contents/Info.plist" ];then SYS_VERSION=`defaults read /Applications/Chromium.app/Contents/Info SVNRevision` if [ $? -ne 0 ];then SYS_VERSION=`defaults read /Applications/Chromium.app/Contents/Info SCMRevision` fi else SYS_VERSION=0 fi echo "Version installee $SYS_VERSION" } function get_svn_version { # On récupère le numéro de la dernière révision disponible sur le SVN SVN_REVISION=`curl -s http://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/LAST_CHANGE` echo "Version SVN $SVN_REVISION" } function install_chromium { cd /tmp # Téléchargement de la nouvelle version curl -L -O "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/$1/chrome-mac.zip" if [ $? -eq 0 ];then unzip -q ./chrome-mac.zip fi echo "Installation de l'application" if [ -f "/Applications/Chromium.app/Contents/Info.plist" ];then mv /Applications/Chromium.app /Applications/Chromium_old.app fi cp -R ./chrome-mac/Chromium.app /Applications/ if [ $? -eq 0 ];then if [ -f "/Applications/Chromium_old.app/Contents/Info.plist" ];then rm -r /Applications/Chromium_old.app fi else mv /Applications/Chromium_old.app /Applications/Chromium.app fi echo "Suppression des fichiers temporaires" rm -r ./chrome-mac rm chrome-mac.zip } # On récupère la version installee et la version en ligne get_sys_version get_svn_version if [ $SYS_VERSION -lt $SVN_REVISION ];then ps aux | grep /Applications/Chromium.app/Contents/MacOS/Chromium | grep -v grep # 1 si pas de ligne trouvée # 0 si chromium lancé # echo $? if [ $? -eq 1 ];then install_chromium $SVN_REVISION else echo "Vous devez fermer Chromium avant de lancer la mise à jour" fi else echo "Pas de mise à jour disponible" fi |
Vous pouvez télécharger mon script de mise à jour chromium_up.sh, pour l’utiliser vous devrez enlever ‘.txt’ à la fin du nom du fichier (c’est pas vraiment obligatoire…) puis faire un chmod u+x dessus.
chmod u+x ./chromium_up.sh |
Super! Tout refonctionne à nouveau! 🙂
Merci beaucoup!
Bonjour Alexis.
Ce commentaire pour signaler que le script de mise à jour Chromium ne semble plus compatible.
J’obtiens désormais ceci depuis quelques jours :
2014-06-24 14:27:49.692 defaults[5637:507]
The domain/default pair of (/Applications/Chromium.app/Contents/Info, SVNRevision) does not exist
Version installee 271874
Version SVN 9d408d56a6c9e2f0584c59f815aa095037d4096a
./chromium_update.sh: line 67: [: 9d408d56a6c9e2f0584c59f815aa095037d4096a: integer expression expected
Pas de mise à jour disponible
Cordialement.
Romain
Je vais essayer de regarder mais pour être franc je n’utilise plus Chromium, je suis repassé à Firefox.
Bonjour Alexis
j’ai regardé en détails l’origine du souci.
Donc le problème vient du changement de la syntaxe contenue dans le fichier info.plist du package Chromium.
Désormais pour la clé SCMRevision de ce fichier, on trouve comme valeur :
« 9490ed19fe378514800ce0effa45a8285a441076-refs/heads/master@{#293891} »
Bon je ne suis pas du tout codeur mais avec quelques vieilles notions du passé et un peu de recherche sur le net, j’ai combiné plusieurs commandes pour extraire la valeur 293891 de cette chaine de caractère qui correspond à la version SVN installée sur la machine locale.
D’abord la commande grep pour extraire cette chaine de caractères en utilisant comme élément de recherche « /heads/master »
Puis un premier cut pour éliminer tout ce qui se trouve avant le caractère « # » avec ce dernier compris puis un deuxième cut pour retirer tout ce qui se trouve après « } » (ce dernier compris également)
J’ai aussi retirer dans le script la commande pointant sur la clé SVNRevision qui n’existe plus dans le fichier info.plist.
Ca donne au final :
# !/bin/sh
# Créer par Alexis Greppo
# Site : https://www.zen-tech.info
function get_sys_version {
# On récupère la version installée actuellement
if [ -f "/Applications/Chromium.app/Contents/Info.plist" ];then
SYS_VERSION=`grep /heads/master /Applications/Chromium.app/Contents/Info.plist | cut -d# -f2 | cut -d} -f1`
else
SYS_VERSION=0
fi
echo "Version installee $SYS_VERSION"
}
function get_svn_version {
# On récupère le numéro de la dernière révision disponible sur le SVN
SVN_REVISION=`curl -s http://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/LAST_CHANGE`
echo "Version SVN $SVN_REVISION"
}
function install_chromium {
cd /tmp
# Téléchargement de la nouvelle version
curl -L -O "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/$1/chrome-mac.zip"
if [ $? -eq 0 ];then
unzip -q ./chrome-mac.zip
fi
echo "Installation de l'application"
if [ -f "/Applications/Chromium.app/Contents/Info.plist" ];then
mv /Applications/Chromium.app /Applications/Chromium_old.app
fi
cp -R ./chrome-mac/Chromium.app /Applications/
if [ $? -eq 0 ];then
if [ -f "/Applications/Chromium_old.app/Contents/Info.plist" ];then
rm -r /Applications/Chromium_old.app
fi
else
mv /Applications/Chromium_old.app /Applications/Chromium.app
fi
echo "Suppression des fichiers temporaires"
rm -r ./chrome-mac
rm chrome-mac.zip
}
# On récupère la version installee et la version en ligne
get_sys_version
get_svn_version
if [ $SYS_VERSION -lt $SVN_REVISION ];then
ps aux | grep /Applications/Chromium.app/Contents/MacOS/Chromium | grep -v grep
# 1 si pas de ligne trouvée
# 0 si chromium lancé
# echo $?
if [ $? -eq 1 ];then
install_chromium $SVN_REVISION
else
echo "Vous devez fermer Chromium avant de lancer la mise à jour"
fi
else
echo "Pas de mise à jour disponible"
fi
Cela fonctionne mais après en terme de conformité et de logique en matière de code, je ne suis pas en mesure de dire que ça soit valable
Bonne journée.
Romain