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 :-)