home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume33 / problem / part00 < prev    next >
Encoding:
Text File  |  1992-10-18  |  9.2 KB  |  241 lines

  1. Newsgroups: comp.sources.misc
  2. From: lijewski@rosserv.gsfc.nasa.gov (Mike Lijewski)
  3. Subject:  v33i002:  problem - A Problem Database Manager, Part00/07
  4. Message-ID: <csm-v33i002=problem.115601@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 38b1f4230e089b8edcebeb295a301bb5
  6. Date: Mon, 19 Oct 1992 16:57:08 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: lijewski@rosserv.gsfc.nasa.gov (Mike Lijewski)
  10. Posting-number: Volume 33, Issue 2
  11. Archive-name: problem/part00
  12. Environment: UNIX, GDBM, C++, termcap
  13.  
  14. Problem - A "problem" database manager
  15.  
  16. Problem is a database manager for bug reports and such, meant to be
  17. used in a UNIX environment.  It is written in C++; uses the GNU
  18. Database Management Library (GDBM) for low-level database operations;
  19. and the termcap(3) library for screen control.  An X Windows interface
  20. is being developed.  The basic idea is to provide a central front-end
  21. for managing the various databases of bugs and miscreant behaviour
  22. that a large UNIX site might be interested in tracking, and
  23. facilitating the sharing of this information amongst all interested
  24. parties.
  25.  
  26. On startup, a list of problem areas is displayed:
  27.  
  28. The 4 Areas:
  29.  
  30.   1 apf
  31.   2 aix370
  32.   3 aixws
  33.   4 dbx
  34.  
  35. This is called the area window.  Upon entering a number corresponding
  36. to the area of interest, the following screen is displayed:
  37.  
  38. Commands
  39.  
  40.   l  -- log new problem
  41.   a  -- append to a problem
  42.   c  -- close a problem
  43.   e  -- examine a problem
  44.   v  -- view problem summaries
  45.   s  -- subscribe to this problem area
  46.   u  -- unsubscribe from this problem area
  47.   k  -- keyword search over problem headers
  48.   K  -- keyword search over problem headers and data
  49.   M  -- modify keyword field
  50.   d  -- delete a problem from the database
  51.   r  -- reorganize the database
  52.   R  -- reopen a closed problem
  53.   q  -- quit
  54.  
  55. Here you are expected to type a single letter symbolizing the
  56. command of interest.
  57.  
  58.   l  -- log new problem
  59.  
  60. Choosing `l', you'll immediately see a screen of the form:
  61.  
  62. Area      networking
  63. Logger    mjlx
  64. Reporter
  65. Logged    Mon Jun 29 08:56:27 1992
  66. Updated   Mon Jun 29 08:56:27 1992
  67. Keywords
  68. Summary
  69. Status    open
  70. Site
  71. Severity
  72. Problem #
  73.  
  74. This is known as the problem header.  Here, Reporter is the user name
  75. or real name of the person who reported the problem;  this needn't be
  76. the same as Logger.  Severity, which runs from 4 (the lowest) to 1
  77. (the highest) is meant to be some indication of the severity of the
  78. problem.  The remaining fields have their obvious meaning.
  79.  
  80. In the above, "problem" has filled in the fields that it can and will
  81. prompt for the others.  It will fill in the Problem # field, if and
  82. when the problem is really logged, with a positive number unique
  83. across all problem areas.  There is no limit to the amount of text
  84. that can be stored in each field.  After filling out this header,
  85. "problem" will invoke the editor in the user's EDITOR environment
  86. variable (or "vi" if not defined), from which the user is expected to
  87. enter the text of the problem.  When you exit from your editor, you'll
  88. be prompted as to whether or not you really want to log the problem.
  89. Typing `y' logs the problem while typing `n' takes you back to the
  90. command window.
  91.  
  92.   a  -- append to a problem
  93.  
  94. Here you'll be prompted for the problem # of an existing problem.  If
  95. a problem of that number actually exists, you'll immediately be
  96. brought up into your editor to enter the text of your append.  When you
  97. exit from your editor, you'll be prompted as to whether or not you
  98. really wish to make this append.
  99.  
  100.   c  -- close a problem
  101.  
  102. Here you'll be prompted for the problem # of an existing problem.  If
  103. a problem of that number actually exists, you'll immediately be
  104. brought up into your editor to enter the text of your close.  Closing
  105. a problem changes the Status field of the problem entry from "open" to
  106. "closed"; it is not removed from the database.  It is meant to be an
  107. indication that the problem has been solved.  Only the original logger
  108. of the problem, or the "problem" administrator can close a problem.
  109.  
  110.   e  -- examine a problem
  111.  
  112. You will be prompted for the problem # of an existing problem.  If
  113. that problem exists you'll be placed into the pager "less" with a copy
  114. of the complete problem header and data of that problem.  This way you
  115. can then page through the problem and do any thing else you might do
  116. from a pager such as saving a copy of the problem or only a portion of
  117. it to another file.
  118.  
  119.   v  -- view problem summaries
  120.  
  121. Typing `v' a list consisting of selected parts of each problem header
  122. is displayed on the screen, one per line:
  123.  
  124. 77 open 1 Jun 28 16:37:09 1992 calloc prototyped wrong
  125. 73 open 2 Jun 26 06:16:03 1992 Fortran code gets seg fault
  126. 18 closed May 30 12:51:34 1992 <stdarg.h> is broken
  127. 53 open 3 May  6 13:45:23 1992 optimization slows down c!
  128. 16 open 3 Apr 26 09:54:49 1992 why don't we have a Pascal compiler?
  129.  
  130. This is called a view window.  The fields displayed are: Problem #,
  131. Status, Severity, if Status is "open", Updated and Summary.  The lines
  132. are sorted: "open" before "closed"; severity order 1 to 4; and then in
  133. most recently updated to least recently updated order.  It the text of
  134. a line is longer than the screen width the line is truncated and a `!'
  135. is place in the final position in the line.  The cursor is initially
  136. placed in the first column of the first line.  The problem list can be
  137. perused using the screen and cursor motion commands of vi and emacs.
  138.  
  139. The line the cursor is on is called the current line.  If the current
  140. line is longer than the screen width it will be shifted left so that
  141. the final screenwidth characters are visible.  In this way, by moving
  142. the cursor on and off of a line, it is possible to read the complete
  143. line, provided that the length of the line is not more than twice the
  144. width of your screen.  Most of the commands in the command window are
  145. accessible from here and apply to the problem in the current line.
  146. For example, typing `a' will append to the problem in the current
  147. line.
  148.  
  149. Typing `H' or `?' from any of the three main windows in "problem" will
  150. display a screen of help commands called the help screen.  The help
  151. screen from within the view window is:
  152.  
  153.  CURSOR MOVEMENT COMMANDS:
  154.  
  155.     ?  H               Display this help.
  156.     q                  quit.
  157.     j  n  ^N  SPC  CR  Forward  one line.
  158.     DOWN_ARROW_KEY             "        .
  159.     k  p  ^P  ^Y       Backward one line.
  160.     UP_ARROW_KEY               "        .
  161.     ^F  ^V             Forward  one window.
  162.     b  ^B  ESC-V       Backward one window.
  163.     ^D                 Forward  one half-window.
  164.     ^U                 Backward one half-window.
  165.     <                  Go to first line of listing.
  166.     >                  Go to last line of listing.
  167.  
  168.  COMMANDS WHICH OPERATE ON THE CURRENT PROBLEM:
  169.  
  170.     a                  Append to current problem.
  171.     c                  Close current problem.
  172.     d                  Delete current problem.
  173.     e m v              Examine, View, or "more" current problem.
  174.     m                  Modify keyword field.
  175.     r                  Reorganize the database.
  176.     R                  Reopen a closed problem.
  177.     s                  Save problem listing to a file - prompts for filename.
  178.  
  179.  MISCELLANEOUS COMMANDS:
  180.  
  181.     !                  starts up a shell.
  182.     ! cmd              executes a shell command - prompts for command.
  183.     !!                 reexecutes previous shell command.
  184.     ^L                 Repaint screen.
  185.     CR                 Signifies end-of-response when in a prompt.
  186.     V                  Print out version string.
  187.  
  188.   s  -- subscribe to this problem area
  189.  
  190. You will be added to a list of interested parties for this area.  Each
  191. time a change is made to the database for this area, every person on
  192. the mailing list receives mail indicating the change that was made.
  193. In this way, it is easy to keep track of problems without having to
  194. regular read all the problems to see if anything new has happened.
  195.  
  196.   u  -- unsubscribe from this problem area
  197.  
  198. You will be removed from the interested parties mailing list for this
  199. area.
  200.  
  201.   k  -- keyword search over problem headers
  202.  
  203. You will be prompted for a regular expression which will then be used
  204. to search over the problem headers.  If there are any matches, the
  205. summary lines of each of the problems which matched will be displayed
  206. in a view window.  For example, if you wished to peruse only open
  207. problems, you could search for "open" whereupon you would be put in a
  208. view window consisting of only the open problems in this area.
  209.  
  210.   K  -- keyword search over problem headers and data
  211.  
  212. This is similar the the `k' command except that the regular expression
  213. search is over the complete problem header and data for each problem.
  214.  
  215.   M  -- modify keyword field
  216.  
  217. This command is useful if you want to modify the keyword field.
  218.  
  219.   d  -- delete a problem from the database
  220.  
  221. This command allows the database administrator to delete problems from
  222. the database for this area.  The problem data is irretrievably removed
  223. from the database.
  224.  
  225.   r  -- reorganize the database
  226.  
  227. This is an administrative command which can be used after many appends and
  228. deletions have been made in the database to shrink it down and make
  229. accessing it more efficient.  It corresponds directly to the GDBM
  230. reorganize command.
  231.  
  232.   R  -- reopen a closed problem
  233.  
  234. A closed problem can be reopened with this command.
  235.  
  236.   q  -- quit
  237.  
  238. This quits from the command window and returns you to the area window.
  239.  
  240. exit 0 # Just in case...
  241.