#!/bin/sh debcache=/var/cache/debsect update(){ # Ces variables ne seront pas visibles en dehors de la fonction update() local debinst section if [ $(id -u) -ne 0 ]; then echo "Vous devez être ROOT" exit 1 fi echo "Mise à jour en cours..."; rm -f "$debcache" 2> /dev/null for debinst in $(dpkg -l | awk '$1 == "ii" { print $2 }'); do info=$(apt-cache showpkg "$debinst") case $info in *main*) section=main;; *contrib*) section=contrib;; *non-free*) section=non-free;; *) section=unknown;; esac echo "$section : $debinst" >> "$debcache" done } help() { echo "Usage: `basename $0` paquet1 paquet2"; echo "Options :" echo " update : mise à jour de la base de données (ROOT uniquement)"; echo " list : liste tout les paquets"; echo " search : liste nom_paquet"; exit; } if [ ! -f "$debcache" ] && [ "$1" != "update" ]; then echo "Veuillez faire '`basename $0` update' SVP"; exit 1; fi case $1 in list) cat "$debcache" exit 0 ;; update) update exit 0 ;; search) shift for i in "$@"; do grep "$i" "$debcache" done exit 0 ;; *) help exit 1 ;; esac