Query or change configuration of Perl modules
Header "SYNOPSIS" 3 # Get config/feature values config_data --module Foo::Bar --feature bazzable config_data --module Foo::Bar --config magic_number # Set config/feature values config_data --module Foo::Bar --set_feature bazzable=1 config_data --module Foo::Bar --set_config magic_number=42 # Print a usage message config_data --help
Header "DESCRIPTION" The CW(C`config_data (C' tool provides a command-line interface to the configuration of Perl modules. By (L"configuration (R", we mean something akin to (L"user preferences (R" or (L"local settings (R". This is a formalization and abstraction of the systems that people like Andreas Koenig ( CW(C`CPAN::Config (C' ),Jon Swartz ( CW(C`HTML::Mason::Config (C' ),Andy Wardley ( CW(C`Template::Config (C' ),and Larry Wall (perl's own Config.pm) have developed independently.
The configuration system employed here was developed in the context of CW(C`Module::Build (C' .Under this system, configuration information for a module CW(C`Foo (C' ,for example, is stored in a module called CW(C`Foo::ConfigData (C' )(I would have called it CW(C`Foo::Config (C' ,but that was taken by all those other systems mentioned in the previous paragraph...). These CW(C`...::ConfigData (C' modules contain the configuration data, as well as publicly accessible methods for querying and setting (yes, actually re-writing) the configuration data. The CW(C`config_data (C' script (whose docs you are currently reading) is merely a front-end for those methods. If you wish, you may create alternate front-ends.
The two types of data that may be stored are called CW(C`config (C' values and CW(C`feature (C' values. A CW(C`config (C' value may be any perl scalar, including references to complex data structures. It must, however, be serializable using CW(C`Data::Dumper (C' .A CW(C`feature (C' is a boolean (1 or 0) value.
Header "USAGE" This script functions as a basic getter/setter wrapper around the configuration of a single module. On the command line, specify which module's configuration you're interested in, and pass options to get or set CW(C`config (C' or CW(C`feature (C' values. The following options are supported:
"module" 4 Item "module" Specifies the name of the module to configure (required).
"feature" 4 Item "feature" When passed the name of a CW(C`feature (C' ,shows its value. The value will be 1 if the feature is enabled, 0 if the feature is not enabled, or empty if the feature is unknown. When no feature name is supplied, the names and values of all known features will be shown.
"config" 4 Item "config" When passed the name of a CW(C`config (C' entry, shows its value. The value will be displayed using CW(C`Data::Dumper (C' (or similar) as perl code. When no config name is supplied, the names and values of all known config entries will be shown.
"set_feature" 4 Item "set_feature" Sets the given CW(C`feature (C' to the given boolean value. Specify the value as either 1 or 0.
"set_config" 4 Item "set_config" Sets the given CW(C`config (C' entry to the given value.
"eval" 4 Item "eval" If the CW(C` --eval (C' option is used, the values in CW(C`set_config (C' will be evaluated as perl code before being stored. This allows moderately complicated data structures to be stored. For really complicated structures, you probably shouldn't use this command-line interface, just use the Perl APIinstead.
"help" 4 Item "help" Prints a help message, including a few examples, and exits.
Header "COPYRIGHT" Copyright (c) 1999, Ken Williams. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Header "SEE ALSO" Module::Build(3), perl(1).
Header "AUTHOR" Ken Williams, email@example.com