70 lines
3.0 KiB
Plaintext
70 lines
3.0 KiB
Plaintext
sequencer - a majordomo module
|
|
|
|
Shane P. McCarron
|
|
MACS, Inc.
|
|
|
|
Copyright MACS Inc, 1996
|
|
|
|
All rights to this package are hereby contributed to the community,
|
|
and in particular to the MajorDomo development group, to do with as
|
|
they see fit.
|
|
|
|
Introduction
|
|
|
|
Sequencer is a perl script based upon the resend script in the
|
|
majordomo release 1.9.3. The script has been modified to (optionally)
|
|
provide for sequence numbering of messages in their subject lines.
|
|
This modification takes advantage of the 'subject-prefix'
|
|
configuration variable already supported by majordomo, expanding it by
|
|
including an additiona '$SEQNUM' expandable variable. Expansion of
|
|
this variable is handled in the sequencer script so that the majordomo
|
|
and config-parse.pl scripts did not have to be modified. Processing of
|
|
$SEQNUM could be moved back into the config-parse.pl library if the
|
|
development team believes this is useful.
|
|
|
|
|
|
Documentation
|
|
|
|
Sequencing is invoked by calling the sequencer script
|
|
with a '-n' (numbering) option. When this option is selected, the
|
|
script uses a listname.seq file in the $filedir directory to determine
|
|
the next message number. It uses the shlock.pl library to keep this file
|
|
locked while the message is being processed (to prevent multiple use
|
|
of the same sequence number, and skipping of sequence numbers when a
|
|
message is bounced late in the script).
|
|
|
|
If there is a subject-prefix defined for the mailing list, and if
|
|
there is a $SEQNUM in the defined subject-prefix, then the message's
|
|
sequence number is placed in the subject line.
|
|
|
|
This script also provides for archiving the messages by sequence
|
|
number. If the -N option is selected, then a copy of the message will
|
|
be placed in the list's archive directory with the file name equal to
|
|
the message's sequence number. In addition, if there is a file called
|
|
INDEX in the archive directory, the message's date, time, author, and
|
|
subject will be placed in that INDEX. Note that the -N option
|
|
necessarily implies the -n option, since archiving without a valid
|
|
sequnce number would be silly. Logically, -N is just a bigger
|
|
version of -n.
|
|
|
|
This script also handles the absence of a subject. If there is no
|
|
subject, the script creates a Subject: line with a subject of
|
|
"Message for listname". This subject will also get a sequence number
|
|
of the requirements specified above are satisfied.
|
|
|
|
Finally, the script increments the sequence number and updates the
|
|
number in the listname.seq file, releasing the lock.
|
|
|
|
Conclusion
|
|
|
|
These extensions are pretty straightforward. I would recommend rolling
|
|
them into the resend script. I would further recommend adding the
|
|
$SEQNUM processing to the subject-prefix handler and getting the
|
|
special case code out of the script. However, this could continue to
|
|
exist as a standalone script. That is how I have done my
|
|
implementation.
|
|
|
|
Also, I think it would be useful to include a man page for resend. If
|
|
you don't have the time, I would be happy to try and put one together.
|
|
However, I haven't written using the man macros in quite a while :-)
|