Postez ici vos trucs & astuces.
Répondre

Petite interface pour Yaourt

#1Messageil y a 7 ans

Bonjour,
quand j'étais sous Arch, j'avais écrit une petite interface en Dialog pour pouvoir utiliser Yaourt facilement; comme ça fonctionne aussi sous Manjaro, je vous en fait profiter...

créer le répertoire ~/.scripts dans le dossier personnel; créer un fichier "ckpkg4arch.sh" dans ce répertoire (le nom est important pour la suite), et y coller ce contenu:

#!/bin/bash
#
# Written by Loubrix under the WTFPL, without any warranty of any kind.
# Thanks to Calimero for his help.

case "$LANG" in
 fr*)
  TITLE="Gestion des paquets Arch"
  _yes="Oui"
  _no="Non"
  _cancel="Annuler"
  _continue_label="Continuer"
  _return_label="Retour"
  _exit="Sortir"
  _welcomess="Bienvenue dans le gestionnaire de paquets d'Arch.\
  Il vous aidera à gérer les logiciels jusqu'à ce que vous soyez à l'aise avec Pacman et Yaourt.\
  Cet assistant indique les commandes qu'il exécute, vous apprenant comment gérer vos logiciels."
  _showinst="Voir les paquets installés"
  _doupd="Mettre à jour le système"
  _instpkg="Installer un paquet"
  _rempkg="Enlever un paquet"
  _quit="Sortir de la gestion des paquets"
  _chooseaction="Que voulez-vous faire ?"
  _questionquit="Voulez-vous quitter ?"
  _questionrempkg="Quel paquet voulez-vous enlever ?\nCommande : yaourt -Rs <nom du paquet>"
  _questionupd="Voulez-vous mettre à jour le système ? N'oubliez pas de vérifier les mises à jour\
  cassées sur www.archlinux.org\nCommande : yaourt -Su"
  _questioninstpkg="Quel paquet voulez-vous installer ?\nRecherchez par mot-clé dans les noms\net\
  les descriptions des logiciels,\net choisissez dans la liste proposée.\nCommande : yaourt <mot-clé>"
  _questionshowinst="Voulez-vous voir les paquets installés ?\nCommande : yaourt -Qs"
  _syncrepo="Synchroniser les dépôts logiciels"
  _questionsyncrepo="Voulez-vous synchroniser\nles dépôts logiciels ?\nCommande : yaourt -Sy"
  _pressenter="Appuyez sur ENTER pour afficher le menu"
  _questionrepo="Voulez-vous éditer le fichier des miroirs ?\nVous pouvez activer\
  (en enlevant le #) les miroirs proches de chez vous.\nSi vous utilisez CTKArch, pensez\
  à désactiver le dépôt ARM pour passer en mise à jour continue.\nQuand vous avez fini,\
  appuyez sur ESC-ESC-X pour sauvegarder et quitter l'éditeur."
  _editrepo="Éditer la liste des miroirs"
  _stats="Statistiques"
  _questionstats="Ceci vous donnera des informations sur les paquets installés, les dépôts,\
  et d'autres données utiles (orphelins, paquets locaux...) ; afficher les statistiques?\nCommande :\
  yaourt --stats"

 ;;
 *)
  TITLE="Arch Package Management"
  _yes="Yes"
  _no="No"
  _cancel="Cancel"
  _continue_label="Continue"
  _return_label="Back"
  _exit="Exit"
  _welcomess="Welcome to the Arch package management.\
  This will help you to manage software packages until you are at ease with Pacman and Yaourt.\
  This assistant tells you which command it runs, teaching you how to manage your software."
  _showinst="See installed packages"
  _doupd="Update system"
  _instpkg="Install package"
  _rempkg="Remove package"
  _quit="Exit package management"
  _chooseaction="What do you want to do?"
  _questionquit="Do you want to exit?"
  _questionrempkg="Which package do yo want to remove?\nCommand: yaourt -Rs <package name>"
  _questionupd="Do you want to upgrade the system? Don't forget to look for broken updates\
  on www.archlinux.org\nCommand: yaourt -Su"
  _questioninstpkg="Which package do you want to install?\nSearch by keyword in names\
  and\ndescriptions of software,\nand choose in the resulting list.\nCommand: yaourt <keyword>"
  _questionshowinst="Do you want to see installed packages?\nCommand: yaourt -Qs"
  _syncrepo="Synchronize software repositories"
  _questionsyncrepo="Do you want to synchronize\nsoftware repositories?\nCommand: yaourt -Sy"
  _pressenter="Press ENTER to return to the menu"
  _questionrepo="Do you want to edit the mirrorlist file? You can activate (removing the #)\
  mirrors near to you.\nIf you use CTKArch, remember to remove the ARM repo to use rolling\
  release updates.\nWhen done, press ESC-ESC-X to save and exit the editor."
  _editrepo="Edit mirrors list"
  _stats="statistics"
  _questionstats="this will give you some informations about installed packages, repositories,\
  and other usefull data (orphans, local packages...); display statistics?"

 ;;
esac

DIALOG() {
    dialog --title "$TITLE" \
    --yes-label "$_yes" --no-label "$_no" --cancel-label "$_cancel" --exit-label "$_exit" \
    "$@"
    }
 
ACTION="/tmp/ctkptemp"

# comands to run on menu
REPO() {
    if DIALOG --yesno "${_questionrepo}" 0 0; then
       clear && su -c "nano /etc/pacman.d/mirrorlist"
    fi
    }
 
SYNCREPO() {
    if DIALOG --yesno "${_questionsyncrepo}" 0 0; then
       clear && yaourt -Sy
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
     
SHOWINST() {
    if DIALOG --yesno "${_questionshowinst}" 0 0; then
       clear && yaourt -Qs
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
     
DOUPD() {
    if DIALOG --yesno "${_questionupd}" 0 0; then
       clear && yaourt -Syu
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
     
INSTPKG() {
    if DIALOG --inputbox "${_questioninstpkg}" 0 0 2>$ACTION; then
       clear && yaourt  $(cat $ACTION)
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
     
REMPKG() {
    if DIALOG --inputbox "${_questionrempkg}" 0 0 2>$ACTION; then
       clear && yaourt -Rs $(cat $ACTION)
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
   
STATS() {
    if DIALOG --yesno "${_questionstats}" 0 0; then
       clear && yaourt --stats
       echo ""
       echo "${_pressenter}"
       read -p "$*"
    fi
    }
     
QUIT() {
    if DIALOG --yesno "${_questionquit}" 6 40;then
       clear && exit 0
    fi
    }

#Main menu
MAINMENU() {
    DIALOG --nocancel --menu "${_chooseaction}" 16 55 8 \
     "1" "${_editrepo}" \
     "2" "${_syncrepo}" \
     "3" "${_doupd}" \
     "4" "${_instpkg}" \
     "5" "${_showinst}" \
     "6" "${_rempkg}" \
     "7" "${_stats}" \
     "8" "${_quit}" 2>$ACTION
    case $(cat $ACTION) in
        "1")
         REPO ;;
        "2")
         SYNCREPO ;;
        "3")
         DOUPD ;;
        "4")
         INSTPKG ;;
        "5")
         SHOWINST ;;
        "6")
         REMPKG ;;
        "7")
    STATS ;;
   "8")
         QUIT ;;

    esac 
    }
     
#########################
## begin execution##

DIALOG --msgbox "${_welcomess}" 0 0

while true; do
    MAINMENU
done

exit 0

enregistrer et rendre éxécutable.
puis, créer le fichier ~/.local/share/applications/ckpkg.desktop , et mettre ceci dedans:

[Desktop Entry]
Name=CKpkg
Comment[fr]=Gestion des paquets
Comment=Package management
Icon=system-software-install
Exec=xterm -e sh -c "~/.scripts/ckpkg4arch.sh"
Terminal=false
Type=Application
Categories=System;
GenericName=Package manager

comme ça, il y aura un lanceur dans le menu "system".

il faut que Xterm, Yaourt, et Dialog soient installés (normalement c'est le cas sous Manjaro).

ce petit utilitaire se pilote au choix avec le clavier ou à la souris et est bilingue (français et anglais)...

PS: il y a marqué "Arch" un peu partout mais c'est facile à remplacer si ça gêne :rigole:

Petite interface pour Yaourt

#2Messageil y a 7 ans

Tuyau sympa, merci Loubrix
Peaufinage: dans le lanceur ~/.local/share/applications/ckpkg.desktop, si tu remplaces
Name=CKpkg par Name = Package Manager ,
en cliquant sur > Menu > Systeme, ton lanceur apparait au-dessus de Pacman-Gui, Pamac, Pkg-Browser, du moins dans mon XFCE où le menu se classe par ordre alphabétique.
En tout cas ça fonctionne très bien.
A+

Petite interface pour Yaourt

#3Messageil y a 7 ans

content que ça plaise et que ça puisse servir...
j'avais fait ça pour apprendre les scripts shell, et pour que ma femme puisse installer et mettre à jour ses logiciels sans ouvrir le terminal.

je pensais le refaire en Xdialog ou Gtkdialog pour que ce soit tout graphique, mais ça risque de ressembler à Pacman-Gui après (et puis je manque de temps).

Répondre