#!/bin/sh ## ## news-cancel ## ## Made by stransky ## Login stransky ## ## Started on dim 13 jan 2002 02:30:56 CET Nicolas STRANSKY ## Last update mer 27 fév 2002 02:28:58 CET Nicolas STRANSKY ## ## Script pour annuler ou modérer un message de news. # # TODO : implémenter la possibilité de définir le message par un NG et un numéro. VERIF () { ligne=`grep --binary-files=text " $1 " /var/spool/news/overview/OV1 | head -n 1 | awk -F "\t" '{print $1"~"$2"~"$3"~"$9}'` numero=`echo $ligne | awk -F "~" '{print $1}'` auteur=`echo $ligne | awk -F "~" '{print $3}'` titre=`echo $ligne | awk -F "~" '{print $2}'` newsgroup=`echo $ligne | awk -F "~" '{print $4}' | awk '{print $3}' | awk -F : '{print $1}'` echo "il s'agit du message $titre, numéro $numero, posté par $auteur dans $newsgroup" echo "" echo -n "exact ? [o/n] " read confirmation case $confirmation in o*|O*) ;; *) echo "On ne fait rien." exit 0 ;; esac } SAUVEGARDE () { echo "Sauvegarde du message dans /root/moderes/..." sleep 1 rep=`echo $newsgroup | sed 's/\./\//g'` cp /var/spool/news/articles/$rep/$numero /root/moderes/$newsgroup'.'$numero.nws moderateur=`who am i | awk '{print $1}'` echo "$1 de $newsgroup.$numero" > /tmp/news-cancel1.txt echo " " >> /tmp/news-cancel1.txt echo "modérateur : $moderateur" >> /tmp/news-cancel1.txt echo "commentaires : " > /tmp/news-cancel-commentaires.txt $EDITOR /tmp/news-cancel-commentaires.txt cat /tmp/news-cancel-commentaires.txt >> /tmp/news-cancel1.txt cat /tmp/news-cancel1.txt | mutt -nx -a /root/moderes/$newsgroup'.'$numero.nws -s "moderation de $newsgroup.$numero par $moderateur" moderateurs rm -f /tmp/news-cancel* echo " " } EDITION () { $EDITOR /var/spool/news/articles/$rep/$numero } CANCEL () { echo -n 'throttling inn... ' /bin/su - news -c "/usr/lib/news/bin/ctlinnd throttle 'article canceling'" echo "canceling article $1" /bin/su - news -c "/usr/lib/news/bin/ctlinnd cancel $1" echo -n 'starting inn... ' /bin/su - news -c "/usr/lib/news/bin/ctlinnd go ''" } if [ $UID -eq 0 ] then case $1 in \<*@*\>) VERIF $1 echo "Edition ou Annulation du message ? [E/A] " read action case $action in e*|E*) SAUVEGARDE Edition EDITION ;; a*|A*) SAUVEGARDE Annulation CANCEL \'$1\' ;; *) echo "attention, il n'y a eu ni édition ni annulation. relancer le script" ;; esac ;; *) echo "usage : news-cancel ''" ;; esac else echo "You must be root to launch this command." exit 1 fi