confget
—
read a variable from a configuration file
confget |
[-cOSx ] [-N |
-n ] [-f
filename] [-m
pattern] [-P
postfix] [-p
prefix] [-s
section] [-t
type] varname... |
confget |
[-OSx ] [-N |
-n ] [-f
filename] [-m
pattern] [-P
postfix] [-p
prefix] [-s
section] [-t
type] -L
pattern... |
confget |
[-OSx ] [-N |
-n ] [-f
filename] [-m
pattern] [-P
postfix] [-p
prefix] [-s
section] [-t
type] -l |
confget |
[-f filename]
-q sections
[-t type] |
The confget
utility examines a INI-style configuration
file and retrieves the value of the specified variables from the specified
section. Its intended use is to let shell scripts use the same INI-style
configuration files as other programs, to avoid duplication of data.
The confget
utility may retrieve the
values of one or more variables, list all the variables in a specified
section, list only those whose names or values match a specified pattern
(shell glob or regular expression), or check if a variable is present in the
file at all. It has a “shell-quoting” output mode that quotes
the variable values in a way suitable for passing them directly to a
Bourne-style shell.
Options:
-c
- Check-only mode; exit with a code of 0 if any of the variables are present
in the configuration file, and 1 if there are none.
-f
filename
- Specify the configuration file to read from, or “-” (a
single dash) for standard input.
-h
- Display program usage information and exit.
-L
- Variable list mode; display the names and values of all variables in the
specified section with names matching one or more specified patterns.
-l
- List mode; display the names and values of all variables in the specified
section.
-m
pattern
- Only display variables with if their values match the specified
pattern.
-N
- Always display the variable name along with the value.
-n
- Never display the variable name, only the value.
-O
- Allow variables in the specified section to override variables in the
unnamed section at the start of the file. This is the only case when
confget
even considers variables in more than one
section.
-P
postfix
- Display this string after the variable name as a postfix.
-p
prefix
- Display this string before the variable name as a prefix.
-q
query
- Query for a specific type of information. For the present, the only
supported value for the query argument is
“sections”, which lists the names of the sections defined in
the configuration file.
-S
- Quote the variable values so that the “var=value” lines may
be passed directly to the Bourne shell.
-s
section
- Specify the configuration section to read. If this option is specified,
confget
will only consider variables defined in
the specified section; see the -O
option for the
only exception.
If this option is not specified,
confget
will use the first section found in the
configuration file. However, if the configuration file contains variable
definitions before a section header, confget
will only examine them instead.
If the -s
option is specified with an
empty string as the section name, confget
will
only examine variables defined before any section
header (a “real” unnamed default section); this is
incompatible with the -O
option.
-T
- List the available configuration file types that may be selected by the
-t
option.
-t
type
- Specify the configuration file type.
-V
- Display program version information and exit.
-x
- Treat the patterns as regular expressions instead of shell glob
patterns.
Not taken into consideration.
If the -c
option is specified, the
confget
utility will exit with a status of 0 if any of
the specified variables exist in the config file and 1 if none of them are
present.
In normal operation, no matter whether any variables were found in
the configuration file or not, the confget
utility
exits with a status of 0 upon normal completion. If any errors should occur
while accessing or parsing the configuration file, the
confget
utility will display a diagnostic message on
the standard error stream and exit with a status of 1.
Retrieve the variable machine_id
from the
system
section of a configuration file:
confget -f h.conf -s system
machine_id
Retrieve the variable hostname
from the
db
section, but only if it ends in
“.ringlet.net”:
confget -f h.conf -s db -m
'*.ringlet.net' hostname
Display the names and values of all variables declared before any
section has been defined:
confget -f h.conf -s ''
-l
Display the names and values of all variables in the
system
section with names beginning with
“mach” or ending in “name”, appending a
“cfg_” at the start of each variable name:
confget -f h.conf -s system -p 'cfg_'
-L 'mach*' '*name'
Display the names and values of all variables in the
system
section:
confget -f h.conf -s system
-l
Safely read the contents of the db
section:
eval `confget -f h.conf -s db -p db_
-S -l`
No standards documentation was harmed in the process of creating
confget
.
Please report any bugs in confget
to the author.
The confget
utility was conceived and written by
Peter Pentchev ⟨roam@ringlet.net⟩ in
2008.