Script de mise à jour de Chromium pour Mac OS X version 2012.08.27

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

4 réflexions au sujet de “Script de mise à jour de Chromium pour Mac OS X version 2012.08.27”

  1. 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

    Répondre
  2. 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

    Répondre

Répondre à Romain Annuler la réponse

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.