Trailing-Edge
-
PDP-10 Archives
-
decuslib20-04
-
decus/20-0131/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.