ArnMaster.doc ArnMaster V0.8 - (C)opyright 1991-92 by Roland Bless 1. Copyright --------- See Arn.doc for copyright and distribution. 2. Purpose ------- ArnMaster creates (small) databases for Arn. These databases are read by Arn and inform it about subject,author,lines,followups,etc. To get fast and comfortable news-reading these databases are required. Because of their clever design they are quite small and can be used on systems with low disk space, too. 3. .arnmasterrc ------------ ArnMaster requires a configuration file, yet (maybe removed in later versions). It's called ".arnmasterrc" and should be placed into your UULIB: directory. If you have .arnrc in your UULIB: you can use this instead and add necessary entries there (.arnmaster should not exist then because it has higher priority). Note that the former keyword NEWSDIRTYPE is no longer valid in .arnrc! Currently there are only four entries required: ACTIVEFILE where is your active-file and what's its name? ~~~~~~~~~~ ARNMASTERLOG where should ArnMaster have its logfile? ~~~~~~~~~~~~ DOTDIRS if your newsgroups-hierarchy is of the following form: ~~~~~~~ comp.sys.amiga.programmers is stored in UUNEWS:comp.sys.amiga.programmers then this entry should exist! The other form is UUNEWS:comp/sys/amiga/programmers which is the default and the DOTDIRS keyword should be deleted from your config-file in this case. NEWSDIR Specify the name of your newsgroups directory. ~~~~~~~ If this entry is missing UUNEWS: is default. Example: ACTIVEFILE UULIB:news/active ARNMASTERLOG T:logfile DOTDIRS Yes 3. Usage ----- ArnMaster should be placed the directory where your other UUCP commands feel comfortable (e.g. UUCP:c or UUCP:bin). User of Dillon's AmigaUUCP _MUST_ specify the -A option (unless you already have an active-file). ArnMaster can only be started from CLI: arnmaster [-idALCP(n)X] [-g|G groupname] Options: -i Info about usage and version. -d Debug. Some more information is printed during scanning on standard-output (stdout). -P(n) Set Task Priority to (n). Example: -P-2 sets the priority to -2. -X Deletes ALL databases. -g name Scan only group name. -G dir Scan only special directory and create .newsdb. Normally Arn uses this option if it is directed to a directory. -A Scan all newsgroups and update your ACTIVEFILE. IMPORTANT: This switch MUST be present if you use Dillon's AmigaUUCP!! -L Generates Lines: number in databases if missing in article header. The original article header is untouched! Because counting the lines will require some time this option is NOT default. In later versions you can tell the daemon (to be written) that this should be the default via an ENV-variable. -C Check for inconsistent databases. This option forces Arnmaster to read all the databases and to rescan articles if they are not in the database, but in the active-range. Some articles are expired in the active range or were cancelled, so it's legal that they are missing in the database. This option was introduced due to a bug in Arnmaster which sometimes caused missing datasets in the databases. THIS OPTION WILL MAKE YOUR DATABASES AS ACTUAL AS POSSIBLE. 4. Action ------ ArnMaster reads your activefile and compares it with the copy active.bak. If there are differences the group is scanned. [If you specified the -A option ArnMaster will scan all groups that it found in ACTIVEFILE. If you don't have an ACTIVEFILE yet, you simply should list ALL newsgroups you get in the ACTIVEFILE, one groupname per line. You maybe can copy the "Newsgroups" file from AmigaUUCP to ACTIVEFILE, if there are _no_ entries after the newsgroupname in a line. Don't forget (although not required) to set the 'm' flag for moderated groups, once ArnMaster 'created' the ACTIVEFILE, see Arn.doc for active-file format.] First, the old database is read if it exists, discarding all expired entries, then all new articles are scanned and the information is written back into a new database. The databases are created in the group directories with the name .newsdb. ArnMaster assumes that 0 is not a valid article-number. If all groups are scanned, the current active file is copied under the same name with the extension .bak. ** Note: Databases may contain false information if you delete articles manually (esp. articles with highest numbers). New articles get old subjects from deleted articles. You can try the "-C" option first, but if this fails delete all databases with "arnmaster -X" and the ACTIVEFILE.bak copy, then invoke arnmaster once again and all databases should be corrected. To have consistent databases it is recommended to start arnmaster after each expire-run, too (best with -C)!! An ACTIVE-FILE is no longer required if you use the -A option. 5. LOGFILE ------- The main logfile entries look like this: arnmasterV0.6 -(09 Feb 92 19:18:37)- group.name: 12/102:102 The number before the slash are the articles that Arnmaster should have scanned (in this example 12). This number is calculated from the difference between ACTIVEFILE and ACTIVEFILE.bak. If there is a 0 it means that Arnmaster looked for expired entries. The next number shows how many articles Arnmaster actually has got in its database. The number after the colon shows how many articles it should be refering to the ACTIVEFILE. If these numbers are not the same then you 6. ERRORS ------ You should report database errors to bugs@spirits.ka.sub.org, but only if you send an lharced and uuencoded .newsdb with the concerning article header. You can find out the article number and group in your LOGFILE. 7. BUGS ---- Sometimes you could get inconsistent databases. You should check from time to time with -C option for those :-) Version history: + new feature , - changed or bug fix 0.5 first release with alpha version 1.00 of Arn 0.6 - Fixed bug in database reading, which sometimes caused a rejection of articles which were not expired + Added -L option for counting lines in articles where the Lines:- header-line is missing. + Added -C option for checking for and rebuilding inconsistent databases. - Complete rescan if article-numbers in ACTIVEFILE.BAK are higher than in ACTIVEFILE. 0.7 - -i option didn't free all allocated memory. 0.8 - bug removed that caused endless loops with "Re^" in subject. - bug in finding realnames removed.