Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SHTK_CONFIG(3)	       FreeBSD Library Functions Manual		SHTK_CONFIG(3)

NAME
     config -- Configuration file processing and queries

LIBRARY
     shtk_import config

DESCRIPTION
     The config	module provides	a mechanism to load configuration files	and to
     handle any	settings defined in them.

     Configuration files are simply shell scripts that can define a set	of
     predefined	variables.

EXAMPLES
     Consider the following configuration file:

	   MYVAR1="this	is the first setting"
	   MYVAR2="this	is the second setting"

	   post_load_hook() {
	       echo "Custom hook! The file has been loaded!"
	   }

     The following sample code depicts a main method to	load the file above,
     including support for specifying the path to the configuration file and
     support to	accept command-line overrides to the configuration variables:

	   local config_file="/etc/foo.conf"

	   shtk_config_init MYVAR1 MYVAR2

	   local OPTIND
	   while getopts ':c:o:' arg "${@}"; do
	       case "${arg}" in
		   c)  # Path to the configuration to load.
		       config_file="${OPTARG}"
		       ;;

		   o)  # Override for a	particular configuration variable.
		       shtk_config_override "${OPTARG}"
		       ;;

		   \?)
		       shtk_cli_usage_error "Unknown option -${OPTARG}"
		       ;;
	       esac
	   done
	   shift $((${OPTIND} -	1))

	   shtk_config_set MYVAR1 "default value for first variable"
	   # No	default	value for MYVAR2
	   post_load_hook() { true; }

	   shtk_config_load "${config_file}"

	   echo	"MYVAR1	is $(shtk_config_get MYVAR1)"
	   echo	"MYVAR2	is $(shtk_config_get_default MYVAR2 "not yet set")"
	   shtk_config_run_hook	post_load_hook

SEE ALSO
     shtk(3), shtk_config_get(3), shtk_config_get_bool(3),
     shtk_config_get_default(3), shtk_config_has(3), shtk_config_include(3),
     shtk_config_init(3), shtk_config_load(3), shtk_config_override(3),
     shtk_config_run_hook(3), shtk_config_set(3), shtk_config_unset(3)

HISTORY
     config first appeared in shtk 1.0.

FreeBSD	13.0		       November	6, 2014			  FreeBSD 13.0

NAME | LIBRARY | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=shtk_config&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help