LMOVE(1)

πŸ’– LMOVE β€” the manual page, but make it bestie πŸ’–

okay so you found lmove(1) in the General Commands Manual and honestly? she's a baddie. she moves articles into /news/group/number directories and she does it with zero drama. let's get into it πŸ¦‹


✨ 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 ]

like yes that's a lot of brackets bestie, but they're all optional except -d. she's flexible πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

  • -a filename β€” this is where the active file lives. peep the file description further down for the tea. if you don't hand this over, she just uses the default active. πŸ“
  • -A β€” okay so lmove reads the active file to figure out what number to start at when she's naming the article files in each group. the problem?? if some external program or person starts dropping articles into the directories themselves, or messing with the numbers in the active file, there's a real chance she accidentally overwrites articles that already exist 😭. to dodge that, lmove checks whether an article already exists before moving a new one into the directory tree. if it's already there, she aborts right there with a warning message.

this option overrides the default action. if you pass it, lmove just keeps bumping the article number up and up until she finds one that isn't taken. slay. πŸ”₯

  • -c filename β€” the location of the configuration file. see the description of the file below. if you don't pass it, default is lmove-config. πŸ’œ
  • -d directory β€” this one is required, no skips allowed. it's the directory holding the articles that lmove is gonna sort into the directory structure. she should be on the same filesystem as the BASE directory (check ACTIVE FILE below), because some ..IX's move command can not move files across file systems. no cap. 🫢
  • -D β€” tells lmove to log a bunch of debugging messages into debug.suck. this is mostly the developer's thing, used to trace various problems. πŸ›
  • -e | -E filename β€” these two yeet all error messages (which normally show up on stderr) into an alternate file instead. the lowercase -e sends them to the compiled-in default defined in suck_config.h. the uppercase -E needs the filename parameter, and all error messages go to that file. πŸ’…
  • -l phrase_file β€” tells lmove to load an alternate phrase file instead of using the built-in messages. this is so you can have her print phrases in another language, or customize the messages without re-building lmove. see the FOREIGN LANGUAGE PHRASES section in suck.1 for more details. 🌈
  • -s β€” tells suck to create symbolic links for articles that are cross posted to multiple groups. the first group on the newsgroups line that's in the active file gets the actual text of the article, and any other groups on the newsgroups line that also exist in the active file get symbolic links to that actual text. this is so news readers can see cross posted articles in all the groups 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 β€” identical to -s, except instead of symbolic links, hard links are created. go read man 2 link and man 2 symlink to explain the differences between hard and symbolic links. πŸ“š

πŸ¦‹ DESCRIPTION πŸ¦‹

Lmove takes articles sitting in a single directory (like the ones you retrieved with suck), and puts them into a directory tree based on newsgroups. she uses an active file to figure out where to put the various articles, and to keep track of the highest numbered articles in those 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 moves 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. they're there 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. no article left behind 🫢


πŸ’€ EXIT VALUES πŸ’€

0 on success, -1 on failure. that's it, that's the vibe check.


πŸ”₯ SEE ALSO πŸ”₯

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


and that's the whole page bestie!! this was LMOVE(1) from the General Commands Manual β€” go forth, sort your articles, and remember: check before you overwrite. mwah πŸ’…πŸ’–πŸ¦‹βœ¨

πŸ“¦ where this page comes from