Re: Add actually replaces

2000-01-24 05:31:54
On January 15, 2000 at 19:19, someone wrote:

There are several projects on the system. Each project has
six mailing lists. I wanted the web interface to the lists
to be in the same directory (not in six seperate
directories). I was using the -dbfile option from the
command line written into the /etc/aliases file of the
system, but when some of the project names got too long, it
broke the alias and I needed to do all of the mhonarc list
specifics from a .mrc file.

Use a front-end script in /etc/aliases which just invokes
mhonarc with the proper command-line options.  This avoids
line lenght problems, and keeps /etc/aliases cleaner.

  exec mhonarc -dbfile whatever.db -outdir ...

When I specified my own dbfile in the .mrc file the system
started only entering the most recent message in the index
file - even though it created an HTML file for all of them.

I can make the problem dissappear by removing just the
<DBFILE> operative, but then mail from all six lists goes to
the same .db file.

You have encountered a subtle behavioral issue with using <DBFILE> in
a resource file.  In short, use -dbfile or the M2H_DBFILE environment

In long, there is a chicken-n-egg problem.  The database file needs to
be read first before any RCFILEs are read (so RCFILE settings override
db settings), therefore, how can a RCFILE tell what the db filename is?
In your case, the default db file is checked for in start-up.  Since
it does not exist, mhonarc believes it is creating a new archive.
However, when mhonarc goes to write the new db file, it writes it
to the filename specified in your .mrc file.  The next time you run
mhonarc, it will check for the default db file again since .mrc file
has not been parsed yet.  Since the default db file does not exist,
mhonarc assumes a new archive, again.  When it writes the db again
to your .mrc filename, it clobbers the old information with only the
information with the messages just added.

The only way <DBFILE> will work in the manner you expect is if
it is set in the default resource file (see DEFRCFILE).  But since
you need to set it differently each time, just use -dbfile or
the M2H_DBFILE environment variable via a wrapper script to
avoid the alias length problem in /etc/aliases.


<Prev in Thread] Current Thread [Next in Thread>
  • Re: Add actually replaces, Earl Hood <=