169 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $Id: metadb.1,v 1.12 2019/09/09 22:35:36 stolcke Exp $
 | |
| .TH metadb 1 "$Date: 2019/09/09 22:35:36 $" "SRILM Tools"
 | |
| .SH NAME
 | |
| metadb \- retrieve configuration information
 | |
| .SH SYNOPSIS
 | |
| .B metadb
 | |
| [
 | |
| .I -options
 | |
| \&...]
 | |
| .I key
 | |
| [ ... ]
 | |
| .SH DESCRIPTION
 | |
| .B metadb
 | |
| retrieves string values associates with keys in configuration files.
 | |
| The key(s) to be retrieved are specified as arguments.
 | |
| The configuration file is located through the enviroment variable
 | |
| .BR METADB_CONFIG ,
 | |
| possibly overridden by the 
 | |
| .B \-config 
 | |
| option.
 | |
| .PP
 | |
| Scripts and programs that need to operate on a variety of data
 | |
| or with different parameters should retrieve all variable information
 | |
| via 
 | |
| .BR metadb .
 | |
| .SH "CONFIG FILE SYNTAX"
 | |
| The format of a line in the configuration file is 
 | |
| .br
 | |
| 	\fIkey\fP \fIvalue\fP
 | |
| .br
 | |
| where
 | |
| .I key
 | |
| is the first word in a line.
 | |
| Anything starting with the second
 | |
| word is the
 | |
| .I value
 | |
| associated with the
 | |
| .IR key .
 | |
| Initial and final whitespace
 | |
| is removed, but otherwise whitespace can be embedded in the
 | |
| .IR value .
 | |
| Only the first of multiple lines with the same
 | |
| .I key
 | |
| is significant for a lookup, unless the
 | |
| .B \-all
 | |
| flag was given.
 | |
| .PP
 | |
| The special key
 | |
| .B INCLUDE
 | |
| is used to perform file inclusions:
 | |
| .br
 | |
| 	\fBINCLUDE\fP /some/other/config/file
 | |
| .br
 | |
| allowing config files to ``inherit'' from other config files.
 | |
| Note that key-value pairs preceding an inclusion override any identical
 | |
| key in the included file.
 | |
| .PP
 | |
| The 
 | |
| .B ALIAS
 | |
| keyword redirects a lookup for one key
 | |
| .I key1
 | |
| by another lookup for 
 | |
| .IR key2 :
 | |
| .br
 | |
| 	\fBALIAS\fP \fIkey1\fP \fIkey2\fP
 | |
| .br
 | |
| .PP
 | |
| The 
 | |
| .B ALIAS_SUFFIX
 | |
| keyword redirects a lookup for any key
 | |
| with suffix
 | |
| .I suffix1
 | |
| to another lookup with the suffix replaced by 
 | |
| .IR suffix2 :
 | |
| .br
 | |
| 	\fBALIAS_SUFFIX\fP \fIsuffix1\fP \fIsuffix2\fP
 | |
| .br
 | |
| This is a convenient way to apply a string mapping to an entire
 | |
| family of keys.
 | |
| To avoid infinite recursions and ambiguities in matching keys,
 | |
| the prefix of the key that is matched by
 | |
| .I suffix1 
 | |
| must no contain any underscore characters.
 | |
| .PP
 | |
| Lines containing only whitespace or starting with a pound sign are ignored:
 | |
| .br
 | |
| 	# this is a comment
 | |
| .br
 | |
| .PP
 | |
| There is also a primitive macro facility:
 | |
| .br
 | |
| 	\fBDEFINE\fP \fIstring\fP \fIstring2\fP
 | |
| .br
 | |
| causes
 | |
| .I string
 | |
| to be replaced by
 | |
| .I string2
 | |
| in the output.
 | |
| .br
 | |
| 	\fBSDEFINE\fP \fIstring\fP \fIcomand\fP \fIarg1\fP \fIarg2\fP ...
 | |
| .br
 | |
| defines
 | |
| .I string
 | |
| as a macro expanding to the first line of output of
 | |
| .IR command .
 | |
| This also allows ``importing'' environment variables:
 | |
| .br
 | |
| 	\fBSDEFINE\fP MACHINE_TYPE printenv MACHINE_TYPE
 | |
| .br
 | |
| (but note the expansion of macros inside the config file does not use
 | |
| dollar signs).
 | |
| .br
 | |
| The directive
 | |
| .br
 | |
| 	\fBMDEFINE\fP \fIstring\fP \fIkey\fP
 | |
| .br
 | |
| defines
 | |
| .I string
 | |
| as a macro expanding to the result of looking up 
 | |
| .I key
 | |
| using 
 | |
| .B metadb
 | |
| itself in the current configuration file.
 | |
| This allows piecing together of strings from various key values,
 | |
| and other back-handed uses.
 | |
| .br
 | |
| 	\fBUNDEF\fP \fIstring\fP
 | |
| .br
 | |
| undoes the definition of
 | |
| .IR string .
 | |
| .PP
 | |
| Macros are expanded in key values, include filenames, and the definitions
 | |
| of other macros (at the time of definition).
 | |
| .SH OPTIONS
 | |
| .TP
 | |
| .BI \-config " file"
 | |
| Use
 | |
| .I file 
 | |
| as the configuration file, instead of 
 | |
| .BR $METADB_CONFIG .
 | |
| .TP
 | |
| .B \-all
 | |
| Return all key values, instead of the first value.
 | |
| This allows using multiple instances of a key to construct lists of strings.
 | |
| .TP
 | |
| .B \-dump
 | |
| Output all key-value pairs found in the config file (prior to
 | |
| any values indexed by command line arguments).
 | |
| .TP
 | |
| .B \-includes
 | |
| Trace the names of INCLUDEd files.
 | |
| .TP
 | |
| .B \-e
 | |
| Print an error message and exit with error status if a requested key value
 | |
| is undefined or empty.
 | |
| .TP
 | |
| .B \-q
 | |
| Check for the presence of a key and do not output key values.
 | |
| A program exit status of 0 (``true'' to the shell)
 | |
| indicates that at least one of the keys is present
 | |
| in the configuration file.
 | |
| Otherwise, a status of 1 (``false'' to the shell) is returned.
 | |
| .SH BUGS
 | |
| Probably.
 | |
| .SH AUTHOR
 | |
| Andreas Stolcke <stolcke@icsi.berkeley.edu>
 | |
| .br
 | |
| Copyright (c) 1999\-2011 SRI International
 | 
