home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- From: lijewski@rosserv.gsfc.nasa.gov (Mike Lijewski)
- Subject: v33i002: problem - A Problem Database Manager, Part00/07
- Message-ID: <csm-v33i002=problem.115601@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 38b1f4230e089b8edcebeb295a301bb5
- Date: Mon, 19 Oct 1992 16:57:08 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: lijewski@rosserv.gsfc.nasa.gov (Mike Lijewski)
- Posting-number: Volume 33, Issue 2
- Archive-name: problem/part00
- Environment: UNIX, GDBM, C++, termcap
-
- Problem - A "problem" database manager
-
- Problem is a database manager for bug reports and such, meant to be
- used in a UNIX environment. It is written in C++; uses the GNU
- Database Management Library (GDBM) for low-level database operations;
- and the termcap(3) library for screen control. An X Windows interface
- is being developed. The basic idea is to provide a central front-end
- for managing the various databases of bugs and miscreant behaviour
- that a large UNIX site might be interested in tracking, and
- facilitating the sharing of this information amongst all interested
- parties.
-
- On startup, a list of problem areas is displayed:
-
- The 4 Areas:
-
- 1 apf
- 2 aix370
- 3 aixws
- 4 dbx
-
- This is called the area window. Upon entering a number corresponding
- to the area of interest, the following screen is displayed:
-
- Commands
-
- l -- log new problem
- a -- append to a problem
- c -- close a problem
- e -- examine a problem
- v -- view problem summaries
- s -- subscribe to this problem area
- u -- unsubscribe from this problem area
- k -- keyword search over problem headers
- K -- keyword search over problem headers and data
- M -- modify keyword field
- d -- delete a problem from the database
- r -- reorganize the database
- R -- reopen a closed problem
- q -- quit
-
- Here you are expected to type a single letter symbolizing the
- command of interest.
-
- l -- log new problem
-
- Choosing `l', you'll immediately see a screen of the form:
-
- Area networking
- Logger mjlx
- Reporter
- Logged Mon Jun 29 08:56:27 1992
- Updated Mon Jun 29 08:56:27 1992
- Keywords
- Summary
- Status open
- Site
- Severity
- Problem #
-
- This is known as the problem header. Here, Reporter is the user name
- or real name of the person who reported the problem; this needn't be
- the same as Logger. Severity, which runs from 4 (the lowest) to 1
- (the highest) is meant to be some indication of the severity of the
- problem. The remaining fields have their obvious meaning.
-
- In the above, "problem" has filled in the fields that it can and will
- prompt for the others. It will fill in the Problem # field, if and
- when the problem is really logged, with a positive number unique
- across all problem areas. There is no limit to the amount of text
- that can be stored in each field. After filling out this header,
- "problem" will invoke the editor in the user's EDITOR environment
- variable (or "vi" if not defined), from which the user is expected to
- enter the text of the problem. When you exit from your editor, you'll
- be prompted as to whether or not you really want to log the problem.
- Typing `y' logs the problem while typing `n' takes you back to the
- command window.
-
- a -- append to a problem
-
- Here you'll be prompted for the problem # of an existing problem. If
- a problem of that number actually exists, you'll immediately be
- brought up into your editor to enter the text of your append. When you
- exit from your editor, you'll be prompted as to whether or not you
- really wish to make this append.
-
- c -- close a problem
-
- Here you'll be prompted for the problem # of an existing problem. If
- a problem of that number actually exists, you'll immediately be
- brought up into your editor to enter the text of your close. Closing
- a problem changes the Status field of the problem entry from "open" to
- "closed"; it is not removed from the database. It is meant to be an
- indication that the problem has been solved. Only the original logger
- of the problem, or the "problem" administrator can close a problem.
-
- e -- examine a problem
-
- You will be prompted for the problem # of an existing problem. If
- that problem exists you'll be placed into the pager "less" with a copy
- of the complete problem header and data of that problem. This way you
- can then page through the problem and do any thing else you might do
- from a pager such as saving a copy of the problem or only a portion of
- it to another file.
-
- v -- view problem summaries
-
- Typing `v' a list consisting of selected parts of each problem header
- is displayed on the screen, one per line:
-
- 77 open 1 Jun 28 16:37:09 1992 calloc prototyped wrong
- 73 open 2 Jun 26 06:16:03 1992 Fortran code gets seg fault
- 18 closed May 30 12:51:34 1992 <stdarg.h> is broken
- 53 open 3 May 6 13:45:23 1992 optimization slows down c!
- 16 open 3 Apr 26 09:54:49 1992 why don't we have a Pascal compiler?
-
- This is called a view window. The fields displayed are: Problem #,
- Status, Severity, if Status is "open", Updated and Summary. The lines
- are sorted: "open" before "closed"; severity order 1 to 4; and then in
- most recently updated to least recently updated order. It the text of
- a line is longer than the screen width the line is truncated and a `!'
- is place in the final position in the line. The cursor is initially
- placed in the first column of the first line. The problem list can be
- perused using the screen and cursor motion commands of vi and emacs.
-
- The line the cursor is on is called the current line. If the current
- line is longer than the screen width it will be shifted left so that
- the final screenwidth characters are visible. In this way, by moving
- the cursor on and off of a line, it is possible to read the complete
- line, provided that the length of the line is not more than twice the
- width of your screen. Most of the commands in the command window are
- accessible from here and apply to the problem in the current line.
- For example, typing `a' will append to the problem in the current
- line.
-
- Typing `H' or `?' from any of the three main windows in "problem" will
- display a screen of help commands called the help screen. The help
- screen from within the view window is:
-
- CURSOR MOVEMENT COMMANDS:
-
- ? H Display this help.
- q quit.
- j n ^N SPC CR Forward one line.
- DOWN_ARROW_KEY " .
- k p ^P ^Y Backward one line.
- UP_ARROW_KEY " .
- ^F ^V Forward one window.
- b ^B ESC-V Backward one window.
- ^D Forward one half-window.
- ^U Backward one half-window.
- < Go to first line of listing.
- > Go to last line of listing.
-
- COMMANDS WHICH OPERATE ON THE CURRENT PROBLEM:
-
- a Append to current problem.
- c Close current problem.
- d Delete current problem.
- e m v Examine, View, or "more" current problem.
- m Modify keyword field.
- r Reorganize the database.
- R Reopen a closed problem.
- s Save problem listing to a file - prompts for filename.
-
- MISCELLANEOUS COMMANDS:
-
- ! starts up a shell.
- ! cmd executes a shell command - prompts for command.
- !! reexecutes previous shell command.
- ^L Repaint screen.
- CR Signifies end-of-response when in a prompt.
- V Print out version string.
-
- s -- subscribe to this problem area
-
- You will be added to a list of interested parties for this area. Each
- time a change is made to the database for this area, every person on
- the mailing list receives mail indicating the change that was made.
- In this way, it is easy to keep track of problems without having to
- regular read all the problems to see if anything new has happened.
-
- u -- unsubscribe from this problem area
-
- You will be removed from the interested parties mailing list for this
- area.
-
- k -- keyword search over problem headers
-
- You will be prompted for a regular expression which will then be used
- to search over the problem headers. If there are any matches, the
- summary lines of each of the problems which matched will be displayed
- in a view window. For example, if you wished to peruse only open
- problems, you could search for "open" whereupon you would be put in a
- view window consisting of only the open problems in this area.
-
- K -- keyword search over problem headers and data
-
- This is similar the the `k' command except that the regular expression
- search is over the complete problem header and data for each problem.
-
- M -- modify keyword field
-
- This command is useful if you want to modify the keyword field.
-
- d -- delete a problem from the database
-
- This command allows the database administrator to delete problems from
- the database for this area. The problem data is irretrievably removed
- from the database.
-
- r -- reorganize the database
-
- This is an administrative command which can be used after many appends and
- deletions have been made in the database to shrink it down and make
- accessing it more efficient. It corresponds directly to the GDBM
- reorganize command.
-
- R -- reopen a closed problem
-
- A closed problem can be reopened with this command.
-
- q -- quit
-
- This quits from the command window and returns you to the area window.
-
- exit 0 # Just in case...
-