bglibs: bg-installer: Standardzied installer program

- Main Page
- Modules
- Data Structures
- Files
- Directories
- Related Pages
- Examples

# bg-installer: Standardzied installer program

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.

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.

- c lines copy regular files from the current directory
- d lines create directories
- s lines create symlinks (`UID`, `GID`, and `MODE` are ignored)
- 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).