scripts/news-cancel
stransky 286c6c5a11 cosmetic
darcs-hash:20020228225410-a279a-cb7ef14e9cde9ff05174fe80def09da02e659fbf.gz
2002-02-28 23:54:10 +01:00

102 lines
2.5 KiB
Bash
Executable file

#!/bin/sh
##
## news-cancel
##
## Made by stransky
## Login stransky <stransky@crans.org>
##
## 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 '<Message-ID>'"
;;
esac
else
echo "You must be root to launch this command."
exit 1
fi