Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/11/2010, à 15:56

kazylax

Savoir si une nouvelle version est disponible

Bonjour,

J'ai le script suivant pour savoir si une nouvelle version de Emesene est disponible
seulement quand j'exécute le script je n'arrive pas a savoir si une version plus récente est disponible

#!/bin/bash

actualversion="emesene_1.6.2"

a=$(echo $actualversion | cut -f1 -d.)
b=$(echo $actualversion | cut -f2 -d.)
last=$(lynx -dump http://ftp.de.debian.org/debian/pool/main/e/emesene/ | grep  $a\.[0-9]\.orig.tar.gz | cut -b58- | tail -1)

if [[ "$b" -lt "$last" ]];
then
zenity --info --title='Check Version' --text="
<b>Une mise a jour est disponible !</b> 
<a href=\"http://ftp.de.debian.org/debian/pool/main/e/emesene/\">http://ftp.de.debian.org/debian/pool/main/e/emesene/</a>"
else
zenity --info --title='Check Version' --text="Aucune mise a jour disponible"
fi

pouvez-vous m'aider s'il vous plait ?

Merci
Cordialement,

Dernière modification par kazylax (Le 27/11/2010, à 15:56)

Hors ligne

#2 Le 27/11/2010, à 16:44

ehmicky

Re : Savoir si une nouvelle version est disponible

Salut,
Tu peux essayer :

#!/bin/bash

actualversion="emesene_1.6.2"
chemin_ftp="http://ftp.de.debian.org/debian/pool/main/e/emesene/"

paquet="$(cut -f1 -d_ <<<"$actualversion")"
vers_actu="$(cut -f2 -d_ <<<"$actualversion")"
dern_vers="$(lynx -dump "$chemin_ftp"\
    | grep  "${chemin_ftp}${paquet}_[[:digit:].]*.orig.tar.gz"\
    | sed "s|.*/${paquet}_||")"

if sort -CV <<<"$dern_vers"$'\n'"$vers_actu" ; then
    zenity --info --title='Check Version' --text="Aucune mise a jour disponible"
else
    zenity --info --title='Check Version' --text="
    <b>Une mise a jour est disponible !</b> 
    <a href=\"http://ftp.de.debian.org/debian/pool/main/e/emesene/\">http://ftp.de.debian.org/debian/pool/main/e/emesene/</a>"
fi

Le sort -CV c'est un peu de la bidouille, mais je connais pas de commande Unix faisant une comparaison de version autrement :-| (même s'il y en a une en C dans Glibc, d'ailleurs utilisée par sort -V).
Sinon, je crois qu'il doit y avoir un meilleur moyen pour vérifier une mise à jour que de parser une page ftp ?


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#3 Le 27/11/2010, à 16:53

kazylax

Re : Savoir si une nouvelle version est disponible

Merci beaucoup
il fonctionne bien smile

Je connais que cette astuce après si il y a mieux je suis preneur smile
via bash si possible.

Cordialement,

Hors ligne