BBL(1)

NAME
bbl - manage a BBoard

SYNOPSIS
bbl [+folder] [-shell program] [-verbose] [-noverbose] bboard [-help]

DESCRIPTION
bbl allows a BBleader to manage a BBoard. The process is relatively simple: a BBleader invokes the bbl program to set-up an environment in which the messages contained in the BBoard may be accessed as if they were messages in an MH folder. To do this, bbl, incs the BBoard to the folder “+bbl”, and incs the archives for the BBoard to the folder “+bbl/arc”. The BBleader then gets a new shell in which MH commands (among others) may be executed. When the BBleader is done, CTRL-D is typed, which terminates the shell. bbl then asks the BBleader as to how the BBoard should be reconstructed. Usually, this results in zeroing the existing BBoard file, and packing the “+bbl” folder into the BBoard file. Similar actions are taken for the archive. The `-shell' switch specifies what process that bbl should invoke as your command interpreter. This need not be a rooted filename. If this switch is not specified, bbl looks at the envariable $SHELL for a value. If this envariable is not set, then bbl uses your login shell. The `-verbose' switch directs bbl to type the shell commands that it executes to get the job done (e.g., chmod s, inc s, etc.) As bbl processing is most likely not intuitively obvious to most prospective BBoard-leaders, a short diatribe is in order. As pointed out in BBleader(1), a BBoard-leader (of the fictitious BBoard “hacks”) has three primary maintenance functions:
Read the BBoard
You don't need bbl to do this, use bbc instead.
Remove inappropriate material
Do this by running bbl. An example of this might be:

 1 % bbl hacks
 2 [ Working folder is +bbl, Archive folder is +bbl/arc ]
 3 [ Type CTRL-D to finish ]
 4 % scan
 5	20	10/14	1345-PDT	Silly User	Nonsensical message
 6	21	10/14	1707-PDT	Silly User	Another one
 7	22	10/14	2144-PDT	Reasonable Person	Legit message
 9 % rmm 20 21
10 % D
11 Incorporate changes? y
12 Remove +bbl? y
13 Update archives? n
14 Remove +bbl/arc? y
15 [+inbox now current]
16 %

In item 1, the BBoard-Leader invokes bbl on the BBoard called “hacks”. The bbl program responds by typing items 2 and 3 which tell the user what MH folders are being used and that a sub-shell is now in use (respectively). The user does a scan of the +bbl folder (bbl sets the current-folder to be the one with the BBoard in it.) and finds two messages that should be removed (numbers 20 and 21). The user then removes these using the rmm program (item 9) and then types a CTRL-D to return to bbl (item 10). At this point, bbl asks how the BBoard should be reconstructed. Item 11 asks if the contents of the +bbl folder should OVERWRITE the contents of the BBoard. The user responds `yes', that it should (hence the two rmm'd messages disappear). Next on item 12, the user is asked if the +bbl folder should be killed, since the BBoards have been successfully updated, the user answers `yes'. On item 13, the user is asked if the archives should be updated. Since the user made no changes, the answer `no' is made. (The user could have answered `yes' with no disastrous effects, but knew that nothing had been updated). Finally, on item 14, the user indicates that the +bbl/arc subfolder should be killed, by answering `yes'.
Archive non-recent material
Do this by running bbl. An example of this might be:

 1 % bbl hacks
 2 [ Working folder is +bbl, Archive folder is +bbl/arc ]
 3 [ Type CTRL-D to finish ]
 4 % scan
 5	11	10/12	1905-PST	Marshall Rose	New MMail/BBck
 6	12	10/12	1916-PST	Stephen Willson	PATH, nfinger, and ls
 7	13	10/12	2329-PDT	G@UCI-20A	833-5122 hours
 8	14	10/13	1045-PDT	MELLON@UCI-20B	Reporting line
 9	15	10/13	1112-PST	Tim Shimeall	Re: 833-5122 hours
10	16	10/13	1045-PDT	MELLON@UCI-20B	Reporting line
11	17	10/13	2042-PST	Dana Roode	Ucifinger
12	18	10/13	2045-PST	Dana Roode	Files in /usr/restores
13	19	10/14	1028-PDT	WILLSON@UCI-20B	Re: term no pause
14	20	10/14	1345-PDT	Martin Katz	Re: term no pause
15	21	10/14	1707-PDT	SCRIBE@UCI-20A	Scribe Use
16	22	10/14	2144-PDT	GFISHER@UCI-20B	New Twemacs
17	23	10/15	1227-PDT	Rob Rittenhouse	Re: New Twemacs
18 % file +bbl/arc -src +bbl 11-12 17-20 21
19 % ^D
20 Incorporate changes? y
21 Remove +bbl? y
22 Update archives? y
23 Remove +bbl/arc? y
24 [+inbox now current]
25 %

The important command given is in item 18, in which the user files some messages from +bbl into +bbl/arc. When CTRL-D is typed, the user directs bbl to update both the BBoard and its archives, which does the proper action. As an alternate to this scenario, some creative BBleaders might use the pick command to do all of the work:
pick -sequence select -before -12 -datefield BB-Posted -zero
pick -sequence select -before -20 -nozero
scan select
refile select +bbl/arc
In order to facilitate the use of automation shell scripts, if the standard input for bbl is not a tty, then bbl will not ask any questions and will proceed as if the user's answer was “yes” for all questions. Hence, bbl may be run under cron (8) to provide for automatic archiving.
^$HOME/.mh_profile~^The user profile ^Path:~^To determine the user's MH directory ^incproc:~^Program to incorporate a mail drop into a folder ^packproc:~^Program to pack a folder into a msgbox ^rmfproc:~^Program to remove a folder bbc(1), bbleader(1), bboards(1) `+folder' defaults to “bbl” `-nofile' `-shell' defaults to $SHELL or your login shell None In the early days of the UCI BBoards facility, BBleaders actually used to run this program by hand. Now, this bbl is often run automatically by the system to perform automatic archiving. Note that bbl executes a lot of MH commands, and as such, each of these commands can and will read your .mh_profile for defaults. Please read the BUGS section of mh-profile (5) for some hints to help you avoid many silly problems. Also, bbl is unforgiving in doing exactly what it is told, so take special care in answering bbl's questions.