#!/bin/bash -e # exim-queue-remover/editor/viewer -- easier poking in the exim queue # Copyright: https://www.gnu.org/licenses/gpl.html # Author: Dan Jacobson https://www.jidanni.org/ # Created: Tue Jun 25 06:03:53 2002 # Last-Updated: 2023-11-07T10:20:12+0000 # Update #: 101 #or symbolic link, etc. also link exim-queue-remover to one's personal $HOME case "$*" in --install) set -exu cd /root/bin for i in viewer editor freezer thawer do ln -s ~jidanni/bin/exim-queue-remover exim-queue-$i done exit; ;; --help|-\?) exec cat<&2; exit 33;; esac set -u : ${multiple_messages=n} ${suffix=-D} case $0 in *remover) m=REMOVE c='/usr/sbin/sendmail -Mrm ' suffix=;; *viewer) set -- /var/spool/exim*/input; test $# -eq 1|| { echo $0: too many exims: $@ 1>&2; exit 83;} m=view c=${PAGER:-pager}\ $1/;; *editor) set -- /var/spool/exim*/input; test $# -eq 1|| { echo $0: too many exims: $@ 1>&2; exit 88;} m=edit c=${EDITOR:-editor}\ $1/;; #-Meb: exim3 only, so not using *freezer) m=freeze c='/usr/sbin/sendmail -Mf ' suffix=;; *thawer) m=thaw c='/usr/sbin/sendmail -Mt ' suffix=;; *) echo $0: huh\? 1>&2; exit 66;; esac #should check for #set -- $(mailq|perl -nwale 'if($#F > 2){ #couldn't figure out a perl replacement!1 # print $F[2]; $_="#[".++$a." ]"; print STDERR;}') set -- $(mailq|awk 'NF>=4{ #to see errors print $3;$0="#["++a"] "$0};{print>"/dev/tty"}') test $# -eq 0 && { echo $0: no messages found 1>&2; exit 35;} while read -p "$m which (oldest first above) message? #" message do case "$message" in "")break;; #beats 'select' *[^0-9]*|0)echo $0: $message: invalid choice 1>&2; exit 37;; esac $c${!message}$suffix test $multiple_messages = y||break #mostly just one done case $m in thaw) set /etc/ppp/ip-up.d/exim4 echo $0: If online remember to do $@ echo -n 'Would (I) like to do it now? [Ny] '; read A if test X$A = Xy then set -x $@ mailq fi ;; esac # Problem: too easy to enter the minutes from mailq, # thinking it is a choice number.