LMOVE(1)

NAME
lmove - move articles into /news/group/number directories

SYNOPSIS
lmove -d directory [ -c filename ] [ -a filename ] [ -e | -E filename ] [ -l phrase_file ] [ -D ] [ -A ] [ -h | -s ]

OPTIONS

-a filename

This is the location of the active file. See description of file below. If this option is not provided, the default of "active" is used.

-A

Lmove uses the active file to determine what number to start at when creating the file name for the articles in each group. If an external program or person either puts articles into the directories, or changes the numbers in the active file, the possibility exists to accidently overwrite already existing articles. In order to avoid this, lmove checks to see if an article already exists before moving a new article into the directory tree. If it already exists, then lmove aborts with a warning message at that point.

This option overrides the default action. If this option is given when lmove runs, then lmove will keep increasing the article number until it finds one not being used.

-c filename

This is the location of the configuration file. See description of file below. If this option is not provided, the default of "lmove-config" is used.

-d directory

This option is required. This is the directory that contains the articles for lmove to put into the directory structure. It should be on the same filesystem as the BASE directory (see ACTIVE FILE below), since some ..IX's move command can not move files across file systems.

-D

This option tells lmove to log various debugging messages to debug.suck. This is primarily used by the developer to trace various problems.

-e | -E filename

These options will send all error messages (normally displayed on stderr), to an alternate file. The lower case version, -e, will send the error messages to the compiled-in default defined in suck_config.h. The upper case version, -E, requires the filename parameter. All error messages will then be sent to this file.

-l phrase_file

This option tells lmove to load in an alternate phrase file, instead of using the built-in messages. This allows you to have lmove print phrases in another language, or to allow you to customize the messages without re-building lmove. See the "FOREIGN LANGUAGE PHRASES" in suck.1 for more details.

-s

This option tells suck to create symbolic links for articles that are cross posted to multiple groups. The first group on the newsgroups line that is in the active file gets the actual text of the article, any other groups that are on the newsgroups line that also exist in the active file will get symbolic links to the actual text. This is so that news readers can see cross posted articles in all the groups that they were cross posted to. NOTE: If an article is cross posted to a group that does not exist in the active file, then a link will not be created.

-h

This option is identical to the -s option, but instead of symbolic links, hard links are created. See man 2 link and man 2 symlink to explain the differences between hard and symbolic links.

DESCRIPTION

Lmove will take articles in a single directory (such as those retrieved with "suck" ), and put them into a directory tree based on newsgroups. Lmove uses an "active" file to determine where to put the various articles, and to keep track of the highest numbered articles in these directories. Lmove will scan each article to find a matching group in the active file, then store the article in that group's directory, increasing the highest number for that group. Normally, once the first group of an article is matched in the active file, lmove goes on to the next article, unless you use the -h or -s option above.

CONFIGURATION FILE

The configuration file should contain two lines:

    BASE=/usr/spool/news
    ACTIVE=/usr/spool/news/active

The BASE= tells lmove the base directory for all articles. This is where the articles are actually stored.

The ACTIVE= tells lmove where to find the active file, described below.

ACTIVE FILE

The active file consists of newsgroup names, the current highest article number, the current lowest article number, and the current status of the group. Lmove only uses the newsgroup name and highest article number. The other fields are just rewritten, and not modified in any way. These are here for use by other programs.

Example:

    comp.os.linux.announce 1000 1 y

The lines are a listing of the valid groups that lmove will store articles in. The highest article number for a new group should be either 0 or 1.

Upon completion, lmove will move the current active file to "active.old", and write out a new active file with the new highest article numbers. Any articles not moved into the directory structure are left in the original article directory.

EXIT VALUES
0 on success, -1 on failure.

SEE ALSO
suck(1), rpost(1), testhost(1).