bg-installer - Standardized installer program.
bg-installer [top-directory] <LIST
The program
bg-installer reads an installation instruction file from
standard input, and executes the instructions in the directory named on the
command line.
Each line in the file is an individual instruction. Blank lines and lines
beginning with "#" are ignored. Lines beginning with
">", if present, instruct bg-installer as to which base directory
to use (see below). All other lines must have following format:
CMD:[OWNER]:[GROUP]:MODE:DIR[:FILENAME[:SOURCE]]
- CMD
- is a single character specifying the installation command,
optionally followed by "?" indicating the command should only
execute if the source exists. If the "?" is followed by a name,
it is used instead of SOURCE as the filename to test.
- OWNER
- (optional) is the owner user ID or name for the target
file.
- GROUP
- (optional) is the group ID or name for the target
file.
- MODE
- is the permissions of the installed file in octal.
- DIR
- is the subdirectory of the installation prefix for the
destination file.
- FILENAME
- (optional) is the name of the file to install into the
directory. It may be omitted for directories.
- SOURCE
- (optional) is the name of the source file to install, if it
differs from the destination file, or the path in the symlink.
If
SOURCE contains wildcards, the command is repeated once for each
matching filename.
If
FILENAME is empty, it is replaced with the value of
SOURCE
after wildcard expansion. Each instance of "$N" in
FILENAME
where "N" is a single digit is replaced with the Nth part of the
source filename. "$0" is replaced with the whole source filename.
The target filename is "PREFIX/TOP/DIR/FILENAME" where
"PREFIX" is the value of
$install_prefix if it is set,
TOP is the directory given on the command line, and
DIR and
FILENAME given in the installation file.
- o
- "c" lines copy regular files from the current
directory
- o
- "d" lines create directories
- o
- "s" lines create symlinks (UID,
GID, and MODE are ignored)
- o
- "l" lines copy libraries using libtool
When
bg-installer encounters a base directory directive, as indicated
above, it opens the file named
conf-BASE (where
BASE is the word
on the directive line), reads the first line, and uses that as the base
directory (prefixed by
$install_prefix as above).
- -v, --verbose
- List the files as they are processed.
- -n, --dry-run
- Don't modify any files, just display.
- -c, --check
- Check destinations instead of installing.
- -h, --help
- Display usage information and exit.
>bin
c:::755::prog2
c?:root:root:4750::prog2
>include
d:::755:package
c:::644:package:base.h:pkgbase.h
s:::::package.h:package/base.h
This reads
conf-bin, and installs
prog1 and setuid root
prog2 (if it was built) under it. It then reads
conf-include,
creates the directory
package under it, and installs
pkgbase.h
as
base.h in that directory. It also creates a symlink
package.h
to
package/base.h.
- install_prefix
- If set, is prefixed to all destination file names.
Bruce Guenter <
[email protected]>