voila un script :
- compare la version dispo sur le net et la version installé (si installé via un deb).
- met à jour si besoin
- télécharge la dernière version et fait tout pour la création d'un deb (demande l'architecture, le nom de la commande)
- installe le deb
Il nécessite le paquet : "links"
#! /bin/bash
# Variables pour les couleurs
FUSHIA="\033[1;35m"
NOIR="\033[1;0m"
BLEUFONCE="\033[1;34m"
VERT="\033[1;32m"
ROUGE="\033[1;31m"
# Version du net
xnviewmp_net=$(links -dump "http://newsgroup.xnview.com/viewforum.php?f=60&sid=cd7112513755712e2212c4331191d5de" | sed -n "/Announcement: XnViewMP / s/.*XnViewMP beta //p" | sort | tail -1)
# Version installée
xnviewmp_local=$(apt-cache show xnviewmp | grep "^Version" | sed "s/.* // ; s/-.*// ; s/b//")
# Comparaison des 2 versions
if [[ ${xnviewmp_net} == ${xnviewmp_local} ]]
then
echo -e "\n${BLEUFONCE}XnViewMP est ${FUSHIA}à jour.${NOIR}"
exit
fi
echo -e "${BLEUFONCE}Les versions de XnViewMP sont ${FUSHIA}différentes${BLEUFONCE} :
- Version du net : ${FUSHIA}${xnviewmp_net}${BLEUFONCE}
- Version locale : ${FUSHIA}${xnviewmp_local:-Non installé}\n${NOIR}"
# Création de l'arborescence deb
echo -e "${BLEUFONCE}Création de l'arborescence${NOIR}.\n"
mkdir -p xnviewmp/{DEBIAN,opt,usr/{sbin,share/applications}}
# téléchargement du fichier :
echo -e "${BLEUFONCE}Téléchargement de la derniere version${NOIR}...\n"
wget http://download.xnview.com/XnViewMP-linux.tgz
# Extraction du fichier tar
echo -e "${BLEUFONCE}Extraction du fichier tar${NOIR}.\n"
tar -xzf XnViewMP-linux.tgz -C xnviewmp/opt
# Suppression du fichier tar
echo -e "${BLEUFONCE}Suppression du fichier tar${NOIR}.\n"
rm XnViewMP-linux.tgz
# Taille du dossier xnviewp
taille=($(du xnviewmp | tail -1))
taille=${taille[0]}
# Choix de l'architecture
echo -e "${BLEUFONCE}Quel est votre architecture ?${NOIR}"
select architecture in 32 64
do
case "${architecture}" in
32) echo -e "\n${BLEUFONCE}Vous avez choisis : ${FUSHIA}${architecture}${NOIR}"
# Creation du fichier control du deb
echo "Package: xnviewmp
Version: ${xnviewmp_net}
Architecture: i386
Installed-Size: ${taille}
Section: graphics
Priority: optional
Maintainer: None <none@none.com>
Homepage: http://www.xnview.com
Description: XnViewMP lecteur et convertisseur de fichier graphique" > xnviewmp/DEBIAN/control
break ;;
64) echo -e "\n${BLEUFONCE}Vous avez choisis : ${FUSHIA}${architecture}${NOIR}"
# Creation du fichier control du deb
echo "Package: xnviewmp
Version: ${xnviewmp_net}
Architecture: amd64
Installed-Size: ${taille}
Depends: ia32-libs (>= 2.7ubuntu17)
Section: graphics
Priority: optional
Maintainer: None <none@none.com>
Homepage: http://www.xnview.com
Description: XnViewMP lecteur et convertisseur de fichier graphique" > xnviewmp/DEBIAN/control
break ;;
*) echo -e "\n${ROUGE}Vous n'avez pas choisi 32 ou 64 bits !${NOIR}" ;;
esac
done
echo
# Création de la commande de lancement du logiciel
echo -e "${BLEUFONCE}Veuillez choisir un nom de commande pour le logiciel${NOIR} (par defaut : xnviewmp)."
read -p "Nom de la commande : " commande
echo "#! /bin/bash
bash /opt/XnViewMP/xnview.sh" > xnviewmp/usr/sbin/${commande:-xnviewmp}
# Rend executable la commande
chmod +x xnviewmp/usr/sbin/${commande:-xnviewmp}
# Modification du script de lancement du logiciel
echo '#!/bin/bash
if [[ -n $1 && -e "$1" ]]
then
fichier=$1
else
fichier=${HOME}
fi
LD_LIBRARY_PATH=/opt/XnViewMP/lib
export LD_LIBRARY_PATH
QT_PLUGIN_PATH=/opt/XnViewMP/lib
export QT_PLUGIN_PATH
/opt/XnViewMP/xnview "${fichier}"' > xnviewmp/opt/XnViewMP*/xnview.sh
# Création du raccourci
echo "[Desktop Entry]
Version=1.0
Type=Application
Name=XnViewMP
GenericName=Lecteur/convertisseur graphique
Comment=lecteur et convertisseur de fichier graphique
Exec=${commande:-xnviewmp} %f
Icon=/opt/XnViewMP/xnview.png
Categories=Graphics;
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-fits;image/x-png;image/x-psd;image/x-xbitmap;application/dicom;" > xnviewmp/usr/share/applications/xnviewmp.desktop
echo
# Création du deb
dpkg --build xnviewmp xnviewmp_${architecture}.deb
# Suppression des dossiers
rm -r xnviewmp
# Installation du deb
sudo dpkg -i xnviewmp_${architecture}.deb
quelqu'un en 32 bits peut-il me renvoyer la commande :
uname -m
merci
merci de faire un retour.