#!/bin/sh IHM_affiche_for_zenity() { texte="Application :\t$1\n Résumé :\t$2\n Éditeur :\t$3$4\n Licence :\t$5\n Description :\n $6" "$7" --question \ --no-wrap \ --title="Snap : installer $1 via son paquet snap ?" \ --ok-label="Installer $1" --cancel-label="Ne pas installer" --text "$texte" $8 } IHM_affiche() { if command -v yad > /dev/null; then dialogUI=yad additionalArgs="--center --image=download" elif command -v zenity > /dev/null; then dialogUI=zenity else echo "la commande zenity n'existe pas." echo "Aucun autre moyen implémenté pour avoir une fenêtre de dialogue" exit 1 fi IHM_affiche_for_zenity "$1" "$2" "$3" "$4" "$5" "$6" "$dialogUI" "$additionalArgs" } get_infos() { echo "$1" | grep -m1 "$2:" | cut -d':' -f2- | awk '{$1=$1};1' } # on vérifie qu'il y a un nom de programme en argument [ -z "$1" ] && exit 1 # récupérer le programme progName=$(echo "$1" | sed "s/snap:\/\///g") # on récupère les informations de snap info pour ce programme informations=$(LANG=C snap info --unicode=always "$progName" 2>&1) if echo "$informations" | grep -qF "no snap found"; then zenity --warning --no-wrap --title="Aucun snap pour $1" --text="$informations" exit 1 fi prog_name=$(get_infos "$informations" 'name') summary=$(get_infos "$informations" 'summary') publisher=$(get_infos "$informations" 'publisher') # store_url=$(get_infos "$informations" 'store-url') # contact_publisher=$(get_infos "$informations" 'contact') license=$(get_infos "$informations" 'license') # on commence avec p = 0 donc false (on affiche pas) # quand on trouve un ligne commençant par description:, on affiche # on n'affiche plus si on tombe sur une ligne respectant l'expression "^.+:" description=$(echo "$informations" | awk 'BEGIN {p=0}; /^description:/ { p = 1 ; next }; /^.+:/ { p = 0 ; next}; p { print }') #echo "progname : $prog_name" #echo "summary : $summary" #echo "publisher : $publisher" #echo "store : $store_url" #echo "contact : $contact_publisher" #echo "license : $license" #echo "desc : $description" # vrai si l'éditeur est de confiance selon la sortie de snap info spanTickPublisherTrusted="" if echo "$publisher" | grep -Fq "✓"; then spanTickPublisherTrusted='' publisher=$(echo "$publisher" | tr -d '✓') fi if IHM_affiche "$prog_name" "$summary" "$publisher" "$spanTickPublisherTrusted" "$license" "$description"; then # pkexec pour une demande graphique pkexec snap install "$prog_name" fi # sinon ne rien faire