NAME
confget - read a variable from a configuration file
SYNOPSIS
confget [-cSx] [-N | -n] [-f filename] [-m pattern] [-P postfix]
[-p prefix] [-s section] [-t type] varname...
confget [-] [-N | -n] [-f filename] [-m pattern] [-P postfix] [-p prefix]
[-s section] [-t type] -L pattern...
confget [-] [-N | -n] [-f filename] [-m pattern] [-P postfix] [-p prefix]
[-s section] [-t type] -l
confget [-hTV]
DESCRIPTION
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.
-P postfix
Display this string after the variable name as a postfix.
-p prefix
Display this string before the variable name as a prefix.
-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 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.
-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.
ENVIRONMENT
Not taken into consideration.
EXIT STATUS
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.
EXAMPLES
Retrieve the variable machine_id from the system section of a
configuration file:
confget -f h.conf -s system machine_id
Retrieve the page_id variable from an HTTP GET request, but only if it is
a valid number:
confget -f- -t http_get -x -m ’^+$’ page_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 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‘
SEE ALSO
For another way to parse INI files, see the Config::IniFiles(3) Perl
module.
STANDARDS
No standards documentation was harmed in the process of creating confget.
BUGS
Please report any bugs in confget to the author.
AUTHOR
The confget utility was conceived and written by Peter Pentchev
〈roam@ringlet.net〉 in 2008.