Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-07 - 43,50456/libman.doc
There are 2 other files named libman.doc in the archive. Click here to see a list.
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 1


     LIBMAN is a program to consolidate multiple  files  into  a  single
large  file  for  storage, with the ability to subsequently separate the
files.  Use of LIBMAN will help alleviate disk storage problems  due  to
allocation  being  done  in  multiples  of  the cluster size (normally 5
blocks).  For instance, ten one-block files count for  fifty  blocks  in
total  allocation.   If  these  were placed in a LIBMAN library file, it
would count for the ten data blocks, and ten storage information blocks,
for a total of twenty blocks (this would count for twenty-five blocks in
total allocation).

     When specifying files in LIBMAN commands, a full file specification
(device,  file,  extension,  ppn,  /PROTECT:XXX,  and /VERSION:V) may be
used.  However, only the filename and the extension have significance in
determining  the pre-existence of a file in the library.  Disk input and
output files default  to  DSK:[-]  (your  directory)  unless  explicitly
specified in the command.

     Libraries are  manipulated  by  LIBMAN  using  verb-like  commands.
Commands  are  (word  in  square brackets indicates minimum abbreviation
which can be used for a command):

     1.  ADD "files" [A]
         Add the files specified in "files" to the current library.  Any
         files  already existing in the library will not be added, and a
         warning will be issued.  No warning will be issued if the  file
         specifcation  had  a wild card (* or ?) in it.  LIBMAN will not
         allow you to add a file to the library which has the same  name
         as  the  library  itself.   In  addition, LIBMAN will check the
         /BEFORE/SINCE/ABEFORE/ASINCE switch settings (if given) for any
         files to be added to the library.

     2.  CREATE libnam [CR]
         Create a library with the name libnam.  This  library  will  be
         used until the next USE or CREATE command.

     3.  COPY "files" [C]
         Copies the files in "files" out of the library into the  user's
         directory.   If  no  output files are specified, the files will
         have the same names as they do in the library  file.   See  the
         DSUPERSEDE verb description.

     4.  DELETE "files" [DEL]
         Delete the files specified by "files" from the library.

     5.  DIRECT OFILE.EXT="LIST" [DI]
         Give a directory of the files in "list" (the whole  library  if
         no  "list")  to  the specified OFILE.EXT.  If no output file is
         specified, the directory is put on the user's terminal.

     6.  DSUPERSEDE arg [DS]
         Specify the action LIBMAN is to take when a COPY is  issued  to
         write  a  disk  file  over  an  already  existing  copy.  If no
         DSUPERSEDE verb has been issued, LIBMAN will use the  value  of
         the  SUPERSEDE  verb, and if that has also not been issued, the
         default is DSUPERSEDE OLDER.  Arg may be one of:
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 2


         1.  ALWAYS
             Always supersede the  existing  disk  copy.   This  permits
             LIBMAN  to  run  slightly  faster since it does not have to
             check the existence of the disk file.

         2.  NEVER
             Never supersede the existing copy on the disk.

         3.  OLDER
             Supersede the existing copy only if the copy of the file on
             the  disk  is  older than the copy in the library.  This is
             the default if no DSUPERSEDE verb has been issued.


     7.  DVERSION "files" [DV]
         This command allows you to set the  version  or  protection  of
         disk files not in the library.  It allows wildcarding, but does
         not allow for filename or extension renameing.   You  may  only
         change the protection and/or the version of the files with this
         command.

     8.  FILDIR (command) [F]
         Run DIRECT to get a disk file directory.  (Command) may consist
         of anything that is legal on the input side of a DIRECT command
         (i.e.  /F/W or *.REL, etc.).  DIRECT will rerun LIBMAN when  it
         is done.  The last library used will be remembered (see command
         notes).

     9.  LSUPERSEDE arg [LS]
         Specify the action LIBMAN is to take when REPLACEing  files  in
         the  library  with  the REPLACE command.  If no LSUPERSEDE verb
         has been issued, the value of the SUPERSEDE verb is  used.   If
         no  SUPERSEDE  has been given, the default is LSUPERSEDE older.
         Arg may be one of:

         1.  ALWAYS
             Always supersede the copy in  the  library  with  the  disk
             copy.

         2.  OLDER
             Only supersede the copy in the library if it is older  than
             the copy on the disk.


    10.  ONEOUT ofile.ext="list" [ON]
         Create the specified output file which is  a  concatenation  of
         the specified input files.

    11.  READ LIBNAM [REA]
         Setup to use the specified  library  file  in  read-only  mode.
         This   allows  you  to  extract  files,  type  files,  and  get
         directories of libraries in an area in which you  cannot  write
         (LIBMAN  checks write-access privs for USE and CREATE commands)
         or on devices other than disk (LIBMAN will not  ADD  or  DELETE
         files on devices other than disk).
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 3


    12.  REPLACE "files" [R]
         For each file in the list of "files", replace the existing copy
         in the library with the new copy.  This action is controlled by
         the LSUPERSEDE verb.

    13.  REMEMBER [REM]
         Specify whether to REMEMBER the library filename or  not.   Use
         NOREMEMBER  (default) [NOREM] to not remember library filenames
         (LIBMAN will run a bit faster, but will be slightly dumber).

    14.  RENAME NEWFIL.ext=OLDFIL.ext [REN]
         Rename the file OLDFIL.ext in the library to  NEWFIL.ext.   You
         are  able  to  change  the filename, extension, protection, and
         version of a file in the library with this command.

    15.  SUPERSEDE arg [S]
         Specifies the action LIBMAN is to take when a COPY  or  REPLACE
         command is done:

         1.  ALWAYS
             Always replace the exisiting copy.

         2.  OLDER
             Copy:  copy the file only if the existing copy on  disk  is
             older  than the copy in the library.  Replace:  replace the
             copy in the library only if the library copy is older  than
             the copy on disk.

         3.  NEVER
             Never replace the existing copy.


    16.  TYPE "files" [T]
         Type the specified files on the teletype.

    17.  USE libname [U]
         Subsequent library manipulation commands will be applied to the
         specified library file.




                             COMMAND NOTES

     1.  No library manipulation commands are legal until  a  CREATE  or
         USE command has been given.

     2.  The default  extension  for  library  files  is  .LIB.   It  is
         recommended that the user not supply extensions for his library
         files so the default will be used.

     3.  LIBMAN will remember the last library specified  in  a  USE  or
         CREATE  command if /REMEMBER is specified.  LIBMAN will write a
         file nnnLRL.TMP, which it will try to read when LIBMAN is  run.
         Thus,  one  may issue a FILDIR command to get a disk directory,
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 4


         and then when control is returned to LIBMAN, one  may  continue
         as if the USE command has already been issued.
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 5


                                EXAMPLES

     1.  Create a library and add files to it
         .R LIBMAN                              ;run LIBMAN
         CREATE LIBRAR                          ;create a library named
                                                ;librar.lib
         ADD myprog.*,for01.dat,*.lst           ;add all files in the
                                                ;user's directory which
                                                ;match the file specs

     2.  Renaming files in a library
         RENAME *.abc=*.def                     ;RENAMES all files with
                                                ;extension *.def to have
                                                ;extension .abc.
         RENAME *.src/prot:155                  ;change the protection
                                                ;of all files with
                                                ;extension .src to be
                                                ;<155>.
         RENAME *.*/version:1(3)                ;change the version
                                                ;of all files in the
                                                ;library to 1(3).

     3.  Copying files out of the library
         COPY *.src                             ;copy all files in the
                                                ;library with extension
                                                ;.src to the user's
                                                ;directory.
         COPY x.*=y.*                           ;copy all files from
                                                ;the library with 
                                                ;filename y and any
                                                ;extension to the
                                                ;user's directory and
                                                ;change the filename
                                                ;to x.
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 6


                            LIBMAN MESSAGES
Error messages:

     1.  ?LIBBDL BAD DEVICE FOR LIBRARY OR NOT READING
         Currently, LIBMAN only operates on DISK files.  It  is  planned
         in a future version to also support DECtape.

     2.  ?LIBCFL CAN'T FIND LIBRARY
         This message is issued when two successive LOOKUP'S on  a  file
         are  issued  and  the  second  one  fails.  This message is not
         expected to occur.

     3.  ?LIBCOD CAN'T OPEN DEVICE, FILE DEV:FILE.EXT[P,PN]
         LIBMAN was unable to open  the  device  to  use  the  specified
         library.

     4.  ?LIBCWL CAN'T WRITE LIBRARY DEV:FILE.EXT[P,PN]
         You do not have priveledges  to  write  the  specified  library
         file.

     5.  ?LIBCWT CAN'T WRITE TMPFILE FOR DIRECT
         LIBMAN was unable to write nnnDIR.TMP tmpfile for DIRECT.   The
         FILDIR command is aborted.

     6.  ?LIBIFL INCORRECTLY FORMATTED LIBRARY AT BLOCK N
         LIBMAN found that block n did not contain the file  information
         block,  or an unexpected end-of-file was detected in block n of
         the library, which should have contained file data.

     7.  ?LIBLDE LIBRARY DIR EMPTY
         A call was made to make a lst of files with  an  empty  library
         directory.  This message is not expected to occur.  Please show
         the terminal session to the maintainer.

     8.  ?LIBLER LOOKUP/ENTER ERROR (N) FILE DEV:FILE.EXT[P,PN]
         LIBMAN was unable to  LOOKUP/enter  the  specified  file.   The
         LOOKUP/enter error code is n.

     9.  ?LIBLIE LIBRARY IS EMPTY
         You have attempted to use the  COPY,  DELETE,  DIRECT,  ONEOUT,
         REPLACE,  RENAME,  or TYPE commands on a null library file or a
         library which has not yet been created.

    10.  ?LIBNUC NO 'USE' COMMAND
         You have  attempted  to  use  a  library  manipulation  command
         without  issuing  a CREATE, READ, or USE command to specify the
         library file.

    11.  ?LIBWFI WILD CARD FILESPEC ILLEGAL, FILE DEV:FILE.EXT[P,PN]
         LIBMAN  does  not  support  wild  carding  for   library   file
         specifications.   All  other  file specifications (i.e.  in any
         command other than CREATE,  READ,  or  USE)  may  contain  wild
         carding on the input files.
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 7


Warning messages:

     1.  %LIBCDB CAN'T DO BINARY I/O TO DEV:FILE.EXT[P,PN]
         The ONEOUT command must have as its output device one which can
         do BINARY i/o.

     2.  %LIBCRE FILE NOT FOUND - ASSUME CREATING DEV:FILE.EXT[P,PN]
         A USE command was issued for a non-existant library.  LIBMAN is
         treating it as a CREATE command.

     3.  %LIBDOE DEVICE OPEN ERROR ON DEV:FILE.EXT[P,PN]
         LIBMAN was unable to open the specified device  to  LOOKUP  the
         file  for  the REPLACE command.  The specified file will not be
         replaced in the library and the original file  in  the  library
         will remain intact.

     4.  %LIBECL I/O ERROR CLOSING LIBRARY - nnnnnn
         LIBMAN detected an error when  closing  a  library  file  after
         writing into it.  The i/o error status is nnnnnn.  The validity
         of the data in the library is questionable.

     5.  %LIBFAL FILE ALREADY IN LIBRARY - DEV:FILE.EXT[P,PN] - IGNORING
         You have specified explicitly a file to add to the library, and
         the  file is already in the library.  Note that this message is
         not issued if the file specification containing this  file  (in
         your command string) contained wild cards (?  or *).  In either
         case the file is not added to the library.

     6.  %LIBFNC FILE NOT COPIED:  DEV:FILE.EXT[P,PN]/SUPERSEDE:ARG
         The specified file was not copied due to the given value of the
         /SUPERSEDE or /DSUPERSEDE switch.

     7.  %LIBFNR FILE NOT REPLACED:  DEV:FILE.EXT[P,PN]/SUPERSEDE:ARG
         The specified file was not replaced in the library due  to  the
         value of the /LSUPSERSEDE or /SUPERSEDE switch.

     8.  %LIBFRE FILE RENAME ERROR ON DEV:FILE.EXT[P,PN] <REASON>
         LIBMAN received an error return on the RENAME of the  specified
         file   with   the  DVERSION  command.   REASON  is  an  english
         explanation of the error.

     9.  %LIBIOE I/O ERROR - STATUS=NNNNNN
         LIBMAN  has  detected  an  i/o  error.   The  validity  of  the
         operation  in  progress  is  highly  questionable,  and  should
         probably be aborted immediately.

    10.  %LIBLAE LIBRARY ALREADY EXISTS
         A CREATE command was issued to create a library  which  already
         exists.  Any ADD commands will cause the existing library to be
         overwritten.  If this is issued to a library to which you  have
         no  priveledges  to  write,  this  message  will be followed by
         ?LIBCWL message.
LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3                  Page 8


    11.  %LIBNFM NO FILES FOUND TO MATCH DEV:FILE.EXT
         LIBMAN could not find any files to match  the  specified  input
         files  on  the COPY, DELETE, REPLACE, TYPE, ONEOUT, or DVERSION
         commands.

    12.  %LIBRFE RENAME FILE EXISTS - FILE.EXT
         You have attempted to  rename  a  file  in  the  library  to  a
         filename which already exists in the library (LIBMAN will allow
         you to rename a file to itself).

    13.  %LIBRLE REPLACE LOOKUP ERROR ON DEV:FILE.EXT[P,PN] <REASON>
         LIBMAN was unable to LOOKUP the specified file to do a  REPLACE
         command.   The existing copy of the file in the library remains
         unchanged.