This is the configuration.options Reference Manual, version 0.10.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 05:49:54 2024 GMT+0.
configuration.options/configuration.options.asd
configuration.options/src/package.lisp
configuration.options/src/types.lisp
configuration.options/src/variables.lisp
configuration.options/src/conditions.lisp
configuration.options/src/protocol.lisp
configuration.options/src/util.lisp
configuration.options/src/mixins.lisp
configuration.options/src/name.lisp
configuration.options/src/schema.lisp
configuration.options/src/configuration.lisp
configuration.options/src/value-types.lisp
configuration.options/src/synchronizer.lisp
configuration.options/src/macros.lisp
configuration.options/src/let-plus.lisp
configuration.options/src/debug.lisp
configuration.options/sources/package.lisp
configuration.options/sources/conditions.lisp
configuration.options/sources/protocol.lisp
configuration.options/sources/debug.lisp
configuration.options/sources/configuration-files.lisp
configuration.options/sources/source-defaults.lisp
configuration.options/sources/source-environment-variables.lisp
configuration.options/sources/source-stream.lisp
configuration.options/sources/source-file.lisp
configuration.options/sources/source-cascade.lisp
The main system appears first, followed by any subsystem dependency.
configuration.options
An extensible configuration system that supports multiple option sources.
Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
(GIT https://github.com/scymtym/configuration.options.git)
LLGPLv3
0.10.0
alexandria
(system).
split-sequence
(system).
let-plus
(system)., at least version "0.2"
more-conditions
(system)., at least version "0.3"
utilities.print-items
(system)., at least version "0.1"
utilities.print-tree
(system)., at least version "0.1"
cl-hooks
(system)., at least version "0.2"
architecture.service-provider
(system)., at least version "0.1"
log4cl
(system).
esrap
(system)., at least version "0.9"
Modules are listed depth-first from the system components tree.
configuration.options/src
configuration.options
(system).
package.lisp
(file).
types.lisp
(file).
variables.lisp
(file).
conditions.lisp
(file).
protocol.lisp
(file).
util.lisp
(file).
mixins.lisp
(file).
name.lisp
(file).
schema.lisp
(file).
configuration.lisp
(file).
value-types.lisp
(file).
synchronizer.lisp
(file).
macros.lisp
(file).
let-plus.lisp
(file).
debug.lisp
(file).
configuration.options/sources
src
(module).
configuration.options
(system).
package.lisp
(file).
conditions.lisp
(file).
protocol.lisp
(file).
debug.lisp
(file).
configuration-files.lisp
(file).
source-defaults.lisp
(file).
source-environment-variables.lisp
(file).
source-stream.lisp
(file).
source-file.lisp
(file).
source-cascade.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
configuration.options/configuration.options.asd
configuration.options/src/package.lisp
configuration.options/src/types.lisp
configuration.options/src/variables.lisp
configuration.options/src/conditions.lisp
configuration.options/src/protocol.lisp
configuration.options/src/util.lisp
configuration.options/src/mixins.lisp
configuration.options/src/name.lisp
configuration.options/src/schema.lisp
configuration.options/src/configuration.lisp
configuration.options/src/value-types.lisp
configuration.options/src/synchronizer.lisp
configuration.options/src/macros.lisp
configuration.options/src/let-plus.lisp
configuration.options/src/debug.lisp
configuration.options/sources/package.lisp
configuration.options/sources/conditions.lisp
configuration.options/sources/protocol.lisp
configuration.options/sources/debug.lisp
configuration.options/sources/configuration-files.lisp
configuration.options/sources/source-defaults.lisp
configuration.options/sources/source-environment-variables.lisp
configuration.options/sources/source-stream.lisp
configuration.options/sources/source-file.lisp
configuration.options/sources/source-cascade.lisp
configuration.options/configuration.options.asd
configuration.options
(system).
configuration.options/src/types.lisp
package.lisp
(file).
src
(module).
name-component
(type).
non-wild-name-component
(type).
wild-name-component
(type).
%every-element-name-component?
(function).
%has-wild-component?
(function).
name
(type).
wild-name
(type).
wildcard-interpretation
(type).
configuration.options/src/variables.lisp
types.lisp
(file).
src
(module).
*configuration*
(special variable).
+no-value+
(constant).
configuration.options/src/conditions.lisp
variables.lisp
(file).
src
(module).
binding-condition
(condition).
binding-condition-container
(reader method).
binding-condition-name
(reader method).
binding-exists-condition
(condition).
binding-exists-condition-existing
(reader method).
binding-missing-condition
(condition).
child-exists-error
(condition).
child-exists-warning
(condition).
child-missing-error
(condition).
child-missing-warning
(condition).
name-parse-error
(condition).
name-parse-error-text
(reader method).
notification-error
(condition).
notification-error-event
(reader method).
notification-error-name
(reader method).
notification-error-sink
(reader method).
notification-error-source
(reader method).
option-condition-option
(reader method).
option-exists-error
(condition).
option-exists-warning
(condition).
option-missing-error
(condition).
option-missing-warning
(condition).
option-syntax-error
(condition).
option-syntax-error-type
(reader method).
option-value-error
(condition).
schema-syntax-error
(condition).
schema-syntax-error-specification
(reader method).
value-condition-value
(reader method).
value-missing-condition
(condition).
value-missing-condition-which
(reader method).
value-missing-error
(condition).
value-missing-warning
(condition).
option-condition
(condition).
value-condition
(condition).
configuration.options/src/protocol.lisp
conditions.lisp
(file).
src
(module).
configuration-schema
(generic reader).
event-hook
(generic function).
find-child
(generic function).
(setf find-child)
(generic function).
find-option
(generic function).
(setf find-option)
(generic function).
find-options
(generic function).
make-configuration
(generic function).
make-name
(generic function).
make-option
(generic function).
map-matching-options
(generic function).
map-options
(generic function).
merge-names
(generic function).
merge-values
(generic function).
merge-values-using-type
(generic function).
name-components
(generic function).
name-equal
(generic function).
name-matches
(generic function).
name<
(generic function).
notify
(generic function).
option-class
(generic reader).
option-configuration
(generic function).
option-default
(generic function).
option-documentation
(generic function).
option-name
(generic reader).
option-schema-item
(generic function).
option-type
(generic function).
option-value
(generic function).
(setf option-value)
(generic function).
option-values
(generic function).
options
(generic reader).
raw->value
(generic function).
raw->value-using-type
(generic function).
schema-children
(generic function).
sub-configuration
(generic function).
validate-value
(generic function).
validate-value-using-type
(generic function).
value
(generic function).
(setf value)
(generic function).
value->string
(generic function).
value->string-using-type
(generic function).
if-name
(macro).
configuration.options/src/util.lisp
protocol.lisp
(file).
src
(module).
print-documentation
(function).
typexpand-1
(function).
typexpand-1-unless-builtin
(function).
configuration.options/src/mixins.lisp
util.lisp
(file).
src
(module).
describe-object
(method).
documentation
(method).
event-hook
(method).
find-option
(method).
(setf find-option)
(method).
(setf find-option)
(method).
(setf find-option)
(method).
map-options
(method).
merge-values
(method).
merge-values-using-type
(method).
merge-values-using-type
(method).
merge-values-using-type
(method).
option-documentation
(reader method).
(setf option-documentation)
(writer method).
option-name
(reader method).
options
(reader method).
print-items
(method).
print-items
(method).
print-option-container-tree
(function).
raw->value
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
shared-initialize
(method).
validate-value
(method).
validate-value-using-type
(method).
validate-value-using-type
(method).
validate-value-using-type
(method).
value->string
(method).
value->string-using-type
(method).
value->string-using-type
(method).
%options
(reader method).
(setf %options)
(writer method).
define-dispatch-methods
(macro).
describe-via-map-options-mixin
(class).
documentation-mixin
(class).
event-hook-mixin
(class).
list-container-mixin
(class).
named-mixin
(class).
(setf option-%name)
(writer method).
type-based-conversion-mixin
(class).
type-based-merging-mixin
(class).
type-based-validation-mixin
(class).
configuration.options/src/name.lisp
mixins.lisp
(file).
src
(module).
(setf elt)
(method).
elt
(method).
length
(method).
make-name
(method).
make-name
(method).
make-name
(method).
make-sequence-like
(method).
merge-names
(method).
name-components
(reader method).
name-matches
(method).
name<
(method).
name<
(method).
parse-name
(function).
print-name
(function).
print-object
(method).
shared-initialize
(method).
subseq
(method).
wildcard-name
(class).
*parse-wild-allowed*
(special variable).
*parse-wild-inferiors-allowed*
(special variable).
map-query-alignments
(function).
configuration.options/src/schema.lisp
name.lisp
(file).
src
(module).
describe-object
(method).
find-child
(method).
(setf find-child)
(method).
(setf find-child)
(method).
find-option
(method).
make-configuration
(method).
make-option
(method).
map-options
(method).
option-class
(reader method).
option-default
(method).
option-type
(reader method).
print-items
(method).
print-items
(method).
schema-children
(method).
shared-initialize
(method).
standard-schema
(class).
standard-schema-item
(class).
%children
(reader method).
(setf %children)
(writer method).
option-%default
(reader method).
(setf option-%default)
(writer method).
(setf option-%default)
(method).
(setf option-%default)
(method).
schema-children/alist
(reader method).
configuration.options/src/configuration.lisp
schema.lisp
(file).
src
(module).
configuration-schema
(reader method).
describe-object
(method).
documentation
(method).
documentation
(method).
find-option
(method).
option-default
(method).
option-default
(method).
option-documentation
(method).
option-documentation
(method).
option-documentation
(method).
option-schema-item
(method).
option-schema-item
(reader method).
option-type
(method).
option-type
(method).
option-value
(method).
option-value
(method).
(setf option-value)
(method).
(setf option-value)
(method).
(setf option-value)
(method).
(setf option-value)
(method).
option-values
(method).
option-values
(reader method).
(setf option-values)
(method).
(setf option-values)
(writer method).
print-items
(method).
print-items
(method).
shared-initialize
(method).
standard-configuration
(class).
standard-option
(class).
option-%cell
(reader method).
option-%value
(reader method).
(setf option-%value)
(writer method).
option-cell
(class).
configuration.options/src/value-types.lisp
configuration.lisp
(file).
src
(module).
directory-pathname
(type).
file-pathname
(type).
merge-values-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
raw->value-using-type
(method).
validate-value-using-type
(method).
validate-value-using-type
(method).
validate-value-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
value->string-using-type
(method).
%maybe-check-detailed-type
(function).
configuration.options/src/synchronizer.lisp
value-types.lisp
(file).
src
(module).
notify
(method).
notify
(method).
notify
(method).
shared-initialize
(method).
standard-synchronizer
(class).
synchronizer-target
(reader method).
%update-value
(function).
handler-of
(function).
synchronizer-handler
(class).
synchronizer-handler-synchronizer
(reader method).
configuration.options/src/macros.lisp
synchronizer.lisp
(file).
src
(module).
define-schema
(macro).
eval-schema-spec
(function).
map-schema-spec
(function).
configuration.options/src/let-plus.lisp
macros.lisp
(file).
src
(module).
&options
(macro).
&options-r/o
(macro).
&options/synchronizer
(macro).
%make-option-value
(function).
%parse-value-binding
(function).
configuration.options/src/debug.lisp
let-plus.lisp
(file).
src
(module).
+config-debug-variable-suffix+
(constant).
call-with-indent
(function).
call-with-level
(function).
config-debug-variable-name
(function).
enable-debugging
(function).
maybe-enable-debugging
(function).
output
(function).
with-indent
(macro).
with-level
(macro).
configuration.options/sources/package.lisp
sources
(module).
configuration.options/sources/conditions.lisp
package.lisp
(file).
sources
(module).
initialization-error
(condition).
processing-error
(condition).
schema-condition
(condition).
schema-condition-schema
(reader method).
sink-condition
(condition).
sink-condition-sink
(reader method).
source-condition
(condition).
source-condition-source
(reader method).
configuration.options/sources/protocol.lisp
conditions.lisp
(file).
sources
(module).
initialize
(generic function).
make-source
(generic function).
make-syntax
(generic function).
process
(generic function).
process-content
(generic function).
source-sources
(generic function).
configuration.options/sources/debug.lisp
protocol.lisp
(file).
sources
(module).
*debug-index*
(special variable).
call-with-source-debug
(function).
with-source-debug
(macro).
configuration.options/sources/configuration-files.lisp
debug.lisp
(file).
sources
(module).
configuration-file-specs
(function).
configuration-files
(function).
*default-configuration-files*
(special variable).
+config-file-pwd-placeholder+
(constant).
+config-file-system-placeholder+
(constant).
+config-file-user-placeholder+
(constant).
+config-files-variable-suffix+
(constant).
config-files-variable-name
(function).
config-files-variable-value
(function).
system-configuration-directory
(function).
user-configuration-directory
(function).
configuration.options/sources/source-defaults.lisp
configuration-files.lisp
(file).
sources
(module).
initialize
(method).
process
(method).
defaults-source
(class).
source-%schema
(reader method).
(setf source-%schema)
(writer method).
configuration.options/sources/source-environment-variables.lisp
source-defaults.lisp
(file).
sources
(module).
print-items
(method).
process
(method).
shared-initialize
(method).
shared-initialize
(method).
environment-variables-source
(class).
make-environment-variable-name->option-name
(function).
source-%name-mapping
(reader method).
(setf source-%name-mapping)
(writer method).
source-name-mapping
(reader method).
configuration.options/sources/source-stream.lisp
sources
(module).
print-items
(method).
process
(method).
shared-initialize
(method).
source-%stream
(reader method).
(setf source-%stream)
(writer method).
source-%syntax
(reader method).
(setf source-%syntax)
(writer method).
source-stream
(reader method).
source-syntax
(reader method).
stream-source
(class).
configuration.options/sources/source-file.lisp
source-stream.lisp
(file).
sources
(module).
print-items
(method).
process
(method).
shared-initialize
(method).
file-source
(class).
source-%pathname
(reader method).
(setf source-%pathname)
(writer method).
source-description
(reader method).
source-element-type
(reader method).
source-if-does-not-exist
(reader method).
source-pathname
(reader method).
configuration.options/sources/source-cascade.lisp
source-file.lisp
(file).
sources
(module).
initialize
(method).
notify
(method).
print-items
(method).
print-items
(method).
print-items
(method).
process
(method).
shared-initialize
(method).
shared-initialize
(method).
shared-initialize
(method).
shared-initialize
(method).
source-sources
(reader method).
cascade-source
(class).
common-cascade-source
(class).
config-file-cascade-source
(class).
copy-indexed-sink
(function).
directory-source
(class).
environment-variable-namify
(function).
ignore-meta-configuration-variables
(function).
indexed-sink
(structure).
indexed-sink-index
(reader).
indexed-sink-p
(function).
indexed-sink-sink
(reader).
make-indexed-sink
(function).
source-%sources
(reader method).
(setf source-%sources)
(writer method).
source-pattern
(reader method).
Packages are listed by definition order.
configuration.options
Options and option containers which are either parts of a
configuration or of a schema.
The basic structure is as follows:
Concept | Protocol | Class(es) | ——————+—————————-+————————–+ + container-like | container protocol | | + schema | schema protocol | ‘standard-schema’ | + configuration | configuration protocol | ‘standard-configuration’ | + option-like | option protocol | | + schema-item | schema item protocol class | ‘standard-schema-item’ | + option | option value protocol | ‘standard-option’ |
Population of configuration options with actual values is handled
by functions and classes in the ‘configuration.options.sources’
package.
alexandria
.
common-lisp
.
let-plus
.
more-conditions
.
split-sequence
.
utilities.print-items
.
&options
(macro).
&options-r/o
(macro).
&options/synchronizer
(macro).
*configuration*
(special variable).
binding-condition
(condition).
binding-condition-container
(generic reader).
binding-condition-name
(generic reader).
binding-exists-condition
(condition).
binding-exists-condition-existing
(generic reader).
binding-missing-condition
(condition).
child-exists-error
(condition).
child-exists-warning
(condition).
child-missing-error
(condition).
child-missing-warning
(condition).
configuration-schema
(generic reader).
define-schema
(macro).
directory-pathname
(type).
eval-schema-spec
(function).
event-hook
(generic function).
file-pathname
(type).
find-child
(generic function).
(setf find-child)
(generic function).
find-option
(generic function).
(setf find-option)
(generic function).
find-options
(generic function).
make-configuration
(generic function).
make-name
(generic function).
make-option
(generic function).
map-matching-options
(generic function).
map-options
(generic function).
map-schema-spec
(function).
merge-names
(generic function).
merge-values
(generic function).
merge-values-using-type
(generic function).
name-component
(type).
name-components
(generic function).
name-equal
(generic function).
name-matches
(generic function).
name-parse-error
(condition).
name-parse-error-text
(generic reader).
name<
(generic function).
non-wild-name-component
(type).
notification-error
(condition).
notification-error-event
(generic reader).
notification-error-name
(generic reader).
notification-error-sink
(generic reader).
notification-error-source
(generic reader).
notify
(generic function).
option-class
(generic reader).
option-condition-option
(generic reader).
option-configuration
(generic function).
option-default
(generic function).
option-documentation
(generic function).
(setf option-documentation)
(generic writer).
option-exists-error
(condition).
option-exists-warning
(condition).
option-missing-error
(condition).
option-missing-warning
(condition).
option-name
(generic reader).
option-schema-item
(generic function).
option-syntax-error
(condition).
option-syntax-error-type
(generic reader).
option-type
(generic function).
option-value
(generic function).
(setf option-value)
(generic function).
option-value-error
(condition).
option-values
(generic function).
(setf option-values)
(generic function).
options
(generic reader).
parse-name
(function).
print-name
(function).
print-option-container-tree
(function).
raw->value
(generic function).
raw->value-using-type
(generic function).
schema-children
(generic function).
schema-syntax-error
(condition).
schema-syntax-error-specification
(generic reader).
standard-configuration
(class).
standard-option
(class).
standard-schema
(class).
standard-schema-item
(class).
standard-synchronizer
(class).
sub-configuration
(generic function).
synchronizer-target
(generic reader).
validate-value
(generic function).
validate-value-using-type
(generic function).
value
(generic function).
(setf value)
(generic function).
value->string
(generic function).
value->string-using-type
(generic function).
value-condition-value
(generic reader).
value-missing-condition
(condition).
value-missing-condition-which
(generic reader).
value-missing-error
(condition).
value-missing-warning
(condition).
wild-name-component
(type).
wildcard-name
(class).
%children
(generic reader).
(setf %children)
(generic writer).
%every-element-name-component?
(function).
%has-wild-component?
(function).
%make-option-value
(function).
%maybe-check-detailed-type
(function).
%options
(generic reader).
(setf %options)
(generic writer).
%parse-value-binding
(function).
%update-value
(function).
*parse-wild-allowed*
(special variable).
*parse-wild-inferiors-allowed*
(special variable).
+no-value+
(constant).
define-dispatch-methods
(macro).
describe-via-map-options-mixin
(class).
documentation-mixin
(class).
event-hook-mixin
(class).
handler-of
(function).
if-name
(macro).
list-container-mixin
(class).
map-query-alignments
(function).
name
(type).
named-mixin
(class).
option-%cell
(generic reader).
option-%default
(generic reader).
(setf option-%default)
(generic function).
(setf option-%name)
(generic writer).
option-%value
(generic reader).
(setf option-%value)
(generic writer).
option-cell
(class).
option-condition
(condition).
print-documentation
(function).
schema-children/alist
(generic reader).
synchronizer-handler
(class).
synchronizer-handler-synchronizer
(generic reader).
type-based-conversion-mixin
(class).
type-based-merging-mixin
(class).
type-based-validation-mixin
(class).
typexpand-1
(function).
typexpand-1-unless-builtin
(function).
value-condition
(condition).
wild-name
(type).
wildcard-interpretation
(type).
configuration.options.sources
This package contains configuration options sources.
Sources such as configuration files, environment variables and commandline options provide option discovery and option value events to sinks (usually a synchronizer) which usually integrate the information into a configuration object.
alexandria
.
common-lisp
.
configuration.options
.
let-plus
.
more-conditions
.
split-sequence
.
configuration-file-specs
(function).
configuration-files
(function).
initialization-error
(condition).
initialize
(generic function).
make-source
(generic function).
make-syntax
(generic function).
process
(generic function).
process-content
(generic function).
processing-error
(condition).
schema-condition
(condition).
schema-condition-schema
(generic reader).
sink-condition
(condition).
sink-condition-sink
(generic reader).
source-condition
(condition).
source-condition-source
(generic reader).
source-sources
(generic function).
*debug-index*
(special variable).
*default-configuration-files*
(special variable).
+config-file-pwd-placeholder+
(constant).
+config-file-system-placeholder+
(constant).
+config-file-user-placeholder+
(constant).
+config-files-variable-suffix+
(constant).
call-with-source-debug
(function).
cascade-source
(class).
common-cascade-source
(class).
config-file-cascade-source
(class).
config-files-variable-name
(function).
config-files-variable-value
(function).
copy-indexed-sink
(function).
defaults-source
(class).
directory-source
(class).
environment-variable-namify
(function).
environment-variables-source
(class).
file-source
(class).
ignore-meta-configuration-variables
(function).
indexed-sink
(structure).
indexed-sink-index
(reader).
indexed-sink-p
(function).
indexed-sink-sink
(reader).
make-environment-variable-name->option-name
(function).
make-indexed-sink
(function).
source-%name-mapping
(generic reader).
(setf source-%name-mapping)
(generic writer).
source-%pathname
(generic reader).
(setf source-%pathname)
(generic writer).
source-%schema
(generic reader).
(setf source-%schema)
(generic writer).
source-%sources
(generic reader).
(setf source-%sources)
(generic writer).
source-%stream
(generic reader).
(setf source-%stream)
(generic writer).
source-%syntax
(generic reader).
(setf source-%syntax)
(generic writer).
source-description
(generic reader).
source-element-type
(generic reader).
source-if-does-not-exist
(generic reader).
source-name-mapping
(generic reader).
source-pathname
(generic reader).
source-pattern
(generic reader).
source-stream
(generic reader).
source-syntax
(generic reader).
stream-source
(class).
system-configuration-directory
(function).
user-configuration-directory
(function).
with-source-debug
(macro).
configuration.options.debug
Functions for debugging configuration processing.
alexandria
.
common-lisp
.
+config-debug-variable-suffix+
(constant).
call-with-indent
(function).
call-with-level
(function).
config-debug-variable-name
(function).
enable-debugging
(function).
maybe-enable-debugging
(function).
output
(function).
with-indent
(macro).
with-level
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Suffix for the name of the environment variable controlling configuration debugging.
When bound to a configuration object, provides the default configuration for the ‘value’ and setf ‘value’ functions.
Like ‘&options-r/o’ but the bound variables are ‘setf’ able places. Setting the value of such a place sets the value of the corresponding option.
Execute BODY with established bindings of option values from the
given ‘configuration’ object.
Bindings are specifications of the form
BINDING ::= VAR-AND-NAME | FULL-BINDING
VAR-AND-NAME ::= VAR | (VAR NAME)
FULL-BINDING ::= (VAR-AND-NAME [DEFAULT-VALUE [VALUE?-VAR]])
VAR is a symbol naming the variable to which the option value
should be bound.
NAME is a string naming an option or an option name object. When
NAME is not supplied, it is derived from VAR by downcasing the name
of the symbol.
When the option named by NAME does not have a value and
DEFAULT-VALUE is supplied, VAR is bound to DEFAULT-VALUE.
When VALUE?-VAR is supplied, it is bound to true when the option named by NAME has value and to false otherwise.
Similar to ‘&options’ but the value has to be a synchronizer instead of a ‘configuration’. When ‘setf’ is used on a place bound to an option, the synchronizer is used to set the new value.
Define a parameter (like ‘cl:defparameter’) named according to
NAME-AND-ARGS the initial value of which is a schema as specified
by DOCSTRING-AND-SPECS.
NAME-AND-ARGS can either be a symbol which will be treated as a
name or a list starting with a symbol followed by keyword
arguments.
DOCSTRING-AND-SPECS is a list of schema and option
specifications (optionally preceded by a documentation string)
where each specification is of the form
SPEC ::= SCHEMA-SPEC | SCHEMA-VALUE-SPEC | OPTION-SPEC
SCHEMA-SPEC ::= (NAME SPEC*)
SCHEMA-VALUE-SPEC ::= (NAME SCHEMA-VALUE)
OPTION-SPEC ::= (NAME &key type default documentation &allow-other-keys)
where SCHEMA-VALUE is evaluated and has to return a schema object.
The arguments of the type and default keyword parameters are
evaluated in the null lexical environment.
When DOCSTRING-AND-SPECS starts with a documentation string, it is
used as the documentation string of the toplevel schema object.
Example:
(define-schema *my-schema*
"Schema for my configuration"
("section"
("option" :type ’integer))) ; Note: :type argument is evaluated
Execute BODY with debug indentation increased by AMOUNT.
Execute BODY with debug level LEVEL.
LEVEL can an integer or ‘:next’ to increase the current level by one.
Call THUNK with debug indentation increased by AMOUNT.
Call THUNK with debug level LEVEL.
LEVEL can an integer or ‘:next’ to increase the current level by one.
Return environment variable name derived from PREFIX.
Return a list of configuration file specifications using PREFIX.
Elements of the returned list are either namestrings or the
placeholders ‘+config-file-pwd-placeholder+’,
‘+config-file-user-placeholder+’ and
‘+config-file-system-placeholder+’.
PREFIX is used to compute the name of an environment variable
PREFIX_CONFIG_FILES the value of which is split at ":" to produce
the return value, if the variable is defined.
Otherwise the default list of configuration file specifications, which is the value of ‘*default-configuration-files*’, is returned.
Return a list of configuration file descriptions based on FILENAME.
Each of the returned descriptions is a list of the form
(PATHNAME DESCRIPTION)
To produce the list of descriptions, FILENAME is combined with each of the specifications in FILE-SPECS. Such a specification can be
* file or directory pathnames which are merged with FILENAME
* the value of ‘+config-file-pwd-placeholder+’ (i.e. the string
"%pwd") which represents a file named FILENAME in the current
directory.
* the value of ‘+config-file-user-placeholder+’ (i.e. the string
"%user") which represents a file named FILENAME in the user
configuration directory as computed by
‘user-configuration-directory’ applied to USER-HOMEDIR.
* the value of ‘+config-file-system-placeholder+’ (i.e. the string "%system") which represents a file named FILENAME in the system configuration directory as computed by ‘system-configuration-directory’ applied to PREFIX.
Enable configuration debugging using stream.
Evaluate SPEC as a schema specification and return the resulting
schema object.
If DOCUMENTATION is supplied, it is used as the documentation string of the toplevel schema item in SPEC.
Call FUNCTION for each specification item in SPEC and return
FUNCTION’s return value for the toplevel schema item in SPEC.
FUNCTION should have a lambda-list compatible to the following one
kind name rest &key prefix schema self
where KIND is one of :schema, :wild-schema and :item, NAME is the
name of the currently processed item and REST is the
remainder (following the name) of the specification item when KIND
is :item.
Enable configuration debugging according to environment variable.
PREFIX is used with ‘config-debug-variable-name’ to compute the
name of the environment variable.
STREAM is used for debug output if debugging is enabled.
Output FORMAT-CONTROL and FORMAT-ARGUMENTS if debugging.
Parse STRING as an option name and return the result.
START and END, when supplied, select a sub-string of STRING for
parsing.
WILD-ALLOWED and WILD-INFERIORS-ALLOWED control whether "*" and "**" respectively are accepted as name components in STRING.
Print dot-separated components of NAME onto STREAM. If WIDTH is
supplied pad output to WIDTH.
If COLON? is non-NIL, print the empty name as "<root>" instead of the empty string.
binding-condition
)) ¶binding-condition
)) ¶name
.
binding-exists-condition
)) ¶Return the schema object governing CONFIGURATION.
standard-configuration
)) ¶Stores the schema object associated to the configuration object.
Return the event hook, a ‘hooks:object-hook’, for OBJECT.
event-hook-mixin
)) ¶Find and return the child schema stored under NAME in SCHEMA.
IF-DOES-NOT-EXIST controls the behavior in case there is no child
schema named NAME in SCHEMA:
nil
Return nil.
other value (but not one of the following)
Return IF-DOES-NOT-EXIST.
’warn, #’warn
Signal a ‘child-missing-warning’ indicating that a child named
NAME does not exist in SCHEMA and return nil.
’error, #’error
Signal a ‘child-missing-error’ indicating that a child named
NAME does not exist in SCHEMA.
a function
Call the function with a ‘child-missing-error’ instance indicating that a child NAME NAME does not exist in SCHEMA.
IF-EXISTS is accepted for parity with ‘(setf find-child)’.
standard-schema
) &key &allow-other-keys) ¶sequence
) schema &rest args &key &allow-other-keys) ¶Store the child schema NEW-VALUE under the name NAME in SCHEMA.
IF-DOES-NOT-EXIST acts similarly to what is described for
‘find-child’ w.r.t. signaling conditions, but does not influence
the return value.
IF-EXISTS controls the behavior in case a child schema name is
already stored in SCHEMA:
:supersede
Replace the existing child named NAME in SCHEMA with NEW-VALUE.
:keep
Do not store NEW-VALUE and keep the child currently associated
to NAME in SCHEMA.
’warn, #’warn
Signal a ‘child-exists-warning’ indicating that a child named
NAME already exists in SCHEMA.
’error, #’error
Signal a ‘child-exists-error’ indicating that a child named NAME
already exists in SCHEMA.
a function
Call the function with a ‘child-exists-error’ indicating that a child named NAME already exists in SCHEMA.
standard-schema
) &key &allow-other-keys) ¶sequence
) (schema standard-schema
) &key &allow-other-keys) ¶sequence
) schema &rest args &key &allow-other-keys) ¶Find and return the option named NAME in CONTAINER.
IF-DOES-NOT-EXIST controls the behavior in case there is no option
named NAME:
nil
Return nil.
other value (but not one of the following)
Return IF-DOES-NOT-EXIST.
’warn, #’warn
Signal a ‘option-missing-warning’ indicating that an option
named NAME does not exist in CONTAINER and return nil.
’error, #’error
Signal an ‘option-missing-error’ indicating that an option named
NAME does not exist in CONTAINER.
a function
Call the function with an ‘option-missing-error’ instance
indicating that an option named NAME does not exist in
CONTAINER.
IF-EXISTS is accepted for parity with ‘(setf find-option)’.
standard-configuration
) &key if-does-not-exist &allow-other-keys) ¶standard-schema
) &key interpret-wildcards? &allow-other-keys) ¶list-container-mixin
) &key &allow-other-keys) ¶sequence
) container &rest args &key &allow-other-keys) ¶Store the option NEW-VALUE under the name NAME in container.
IF-DOES-NOT-EXIST acts similarly to what is described for
‘find-option’ w.r.t. signaling conditions, but does not influence
the return value.
IF-EXISTS controls the behavior in case an option named NAME is
already stored in CONTAINER:
:supersede
Replace the existing option named NAME in container with
NEW-VALUE.
:keep
Do not store NEW-VALUE and keep the option currently associated
to NAME in CONTAINER.
’warn, #’warn
Signal a ‘option-exists-warning’ indicating that an option named
NAME already exists in CONTAINER.
’error, #’error
Signal an ‘option-exists-error’ indicating that an option named
NAME already exists in CONTAINER.
a function
Call the function with an ‘option-exists-error’ instance indicating that an option named NAME already exists in CONTAINER.
list-container-mixin
) &key &allow-other-keys) ¶list-container-mixin
) &key &allow-other-keys) ¶list-container-mixin
) &key &allow-other-keys) ¶sequence
) container &rest args &key &allow-other-keys) ¶Find and return a sequence of options in CONTAINER matching QUERY
which can be a name with wildcard components.
Matching options can appear in any order in the returned
sequence.
If CONTAINER has child containers (as can be the case for schema
objects), matching options in ancestor containers (i.e. transitive
children) are also found and returned.
For a description of INTERPRET-WILDCARDS?, see ‘map-matching-options’.
Initialize SOURCE with SCHEMA. SOURCE can, for example, examine the options in SCHEMA and create corresponding internal data structures, or user-facing interfaces, help texts, etc.
cascade-source
) schema) ¶defaults-source
) schema) ¶Make and return a configuration object the option objects in which comply to schema.
standard-schema
)) ¶Return a name corresponding to THING which can be a name string, a
sequence of ‘name-component’s or a name.
The second return value is true if something other than THING (i.e. the result of coercing THING to a name) is returned and false if THING is returned.
wildcard-name
)) ¶Make and return an option object according to SCHEMA-ITEM and
NAME.
The new option will be named NAME and point to a new option cell which will in turn point to SCHEMA-ITEM for type, default, documentation, etc.
standard-schema-item
) (name sequence
) &key option-class option-cell-class) ¶sequence
) &rest args &key &allow-other-keys) ¶Construct and return an object implementing the source protocol
according to SPEC and the remaining keyword arguments.
For example, when SPEC is a symbol naming a provider of the ‘source’ service, the remaining keyword arguments are used as initargs.
symbol
) &rest args &key) ¶Construct and return an object implementing the syntax protocol
according to SPEC and the remaining keyword arguments.
For example, when SPEC is a symbol naming a provider of the ‘syntax’ service, the remaining keyword arguments are used as initargs.
symbol
) &rest args &key) ¶Call FUNCTION for each option matching QUERY in CONTAINER.
See ‘map-options’ for a description of FUNCTION.
QUERY has to be a (potentially wildcard) name against which
options in CONTAINER are matched.
INTERPRET-WILDCARDS? controls whether and how wild components in
QUERY and in names of items in CONTAINER should be
interpreted. The following values are accepted:
nil
Wildcards in neither QUERY nor CONTAINER are interpreted. That
is, names only match if their components, including wildcard
components are identical.
:query
Wildcards in QUERY are interpreted, allowing arbitrary name
components in corresponding positions in names in CONTAINER to
match.
:container
Wildcards in names in CONTAINER are interpreted, allowing arbitrary name components in corresponding positions in QUERY to match.
function
) query container &key interpret-wildcards?) ¶function
) (query sequence
) container &rest args &key &allow-other-keys) ¶Call FUNCTION for each option in CONTAINER.
FUNCTION is called with at least one argument: the option. Keyword
arguments may follow.
If CONTAINER is a schema object, FUNCTION is called with the
following keyword arguments:
:prefix
Specifies the option name prefix of the child container in which
the current option is contained (the prefix is empty for options
contained in CONTAINER itself).
:container
Specifies the container in which the current option
resides (either CONTAINER or child containers thereof).
function
) (container standard-schema
)) ¶function
) (container list-container-mixin
)) ¶Construct and return a new name by concatenating the components of LEFT and RIGHT.
wildcard-name
)) ¶(eql nil)
) right) ¶Merge the sequence of values VALUES into a single value in the appropriate way for the type of SCHEMA-ITEM and return two values: 1) nil or the merged value 2) t if the merge produced a value and nil if the merge did not produce a value.
type-based-merging-mixin
) (values sequence
)) ¶Like ‘merge-values’ but may incorporate TYPE into the decision how to merge VALUES.
type-based-merging-mixin
) (values sequence
) (type (eql list)
) &key inner-type) ¶type-based-merging-mixin
) (values sequence
) type &key inner-type) ¶type-based-merging-mixin
) (values sequence
) (type symbol
) &key inner-type) ¶type-based-merging-mixin
) (values sequence
) (type cons
) &key inner-type) ¶Return a sequence of the components of NAME.
wildcard-name
)) ¶Stores the components of the name.
list
)) ¶Return non-nil when LEFT and RIGHT are equal.
In case LEFT is not equal to RIGHT, return two values: 1) nil 2)
the position of the mismatch in LEFT.
START1 and END1, if supplied, select a subseqeuence of LEFT to be
used in the equality test.
START2 and END2, if supplied, select a subseqeuence of RIGHT to be used in the equality test.
Return non-nil when QUERY matches NAME.
This can be the case either when QUERY and NAME are equal or when
QUERY contains :wild or :wild-inferiors components matching
components of NAME.
START1 and END1, if supplied, select a subseqeuence of QUERY to be
used in the matching computation.
START2 and END2, if supplied, select a subseqeuence of NAME to be used in the matching computation.
wildcard-name
) name &key start1 end1 start2 end2) ¶name-parse-error
)) ¶text
.
Return non-nil when LEFT is BEFORE in the following ordering: components induce a lexicographical ordering where :wild-inferiors go before :wild which in turn goes before all other components.
wildcard-name
) (right sequence
)) ¶sequence
) (right wildcard-name
)) ¶notification-error
)) ¶notification-error
)) ¶name
.
notification-error
)) ¶sink
.
notification-error
)) ¶SINK is notified about some change regarding the option named
NAME.
EVENT can be, for example, :added, :removed, :new-value. For these
three, the remaining parameters are interpreted as follows:
EVENT NAME VALUE
:added OPTION-NAME SHOULD-BE-IGNORED
:removed OPTION-NAME SHOULD-BE-IGNORED
:new-value OPTION-NAME [RAW-]NEW-VALUE
RAW? indicates whether VALUE is an unparsed string value or
whether it has already been parsed.
The value of the keyword parameter SOURCE usually is the source object that produced the event, but may be nil.
indexed-sink
) event name value &rest args &key index &allow-other-keys) ¶standard-synchronizer
) (event (eql :new-value)
) name value &rest args &key index source raw? &allow-other-keys) ¶standard-synchronizer
) (event (eql :removed)
) name value &key &allow-other-keys) ¶standard-synchronizer
) (event (eql :added)
) name value &key index &allow-other-keys) ¶Return the name of the class for options based on SCHEMA-ITEM.
standard-schema-item
)) ¶Stores the name of the class that should be used for
making options corresponding to this schema item.
option-condition
)) ¶Return the configuration object containing OPTION.
Return two values describing the default value of OPTION: 1) nil
or the default value of OPTION 2) nil if OPTION does not have a
default value and t if OPTION has a default value.
IF-DOES-NOT-EXIST controls the behavior in case OPTION does not
have default value:
nil
Return the two values nil, nil.
other value (but not one of the following)
Return the two values IF-DOES-NOT-EXIST, nil.
’warn, #’warn
Signal a ‘value-missing-warning’ indicating that OPTION does not
have a default value and return the two values nil, nil.
’error, #’error
Signal a ‘value-missing-error’ indicating that OPTION does not
have a default value.
a function
Call the function with a ‘value-missing-error’ instance indicating that OPTION does not have a default value.
standard-option
) &key if-does-not-exist) ¶option-cell
) &key if-does-not-exist) ¶standard-schema-item
) &key if-does-not-exist) ¶Return nil or the documentation string of OPTION.
standard-option
)) ¶option-cell
)) ¶standard-configuration
)) ¶documentation-mixin
)) ¶Stores nil or the documentation string associated to the option.
documentation-mixin
)) ¶Stores nil or the documentation string associated to the option.
Return the name object naming OPTION.
named-mixin
)) ¶Stores the name of the option.
name
.
Return the schema item corresponding to OPTION.
standard-option
)) ¶option-cell
)) ¶Stores the associated schema item which in turn
stores the type, default and documentation for the
option.
option-syntax-error
)) ¶type
.
Return the type of OPTION. The returned type is an expression similar to a CL type.
standard-option
)) ¶option-cell
)) ¶standard-schema-item
)) ¶Stores the type of the option as an expression similar to a CL type.
type
.
Return up to three values describing the value of OPTION:
1) nil or the value of OPTION
2) nil if OPTION does not have a value and t if OPTION has a value
3) if OPTION has a value and a single source provided it, that
source.
IF-DOES-NOT-EXIST controls the behavior in case OPTION does not
have value:
nil
Return the two values nil, nil.
other value (but not one of the following)
Return the two values IF-DOES-NOT-EXIST, nil.
’warn, #’warn
Signal a ‘value-missing-warning’ indicating that OPTION does not
have a default value and return the two values nil, nil.
’error, #’error
Signal a ‘value-missing-error’ indicating that OPTION does not
have a value.
a function
Call the function with a ‘value-missing-error’ instance indicating that OPTION does not have a value.
standard-option
) &key if-does-not-exist) ¶option-cell
) &key if-does-not-exist) ¶Set the current value of OPTION to NEW-VALUE.
IF-DOES-NOT-EXIST is accepted for parity with ‘option-value’.
IF-INVALID controls the behavior in case NEW-VALUE is not a valid value for OPTION. See the description of the if-invalid keyword parameter of the ‘validate-value’ generic function.
standard-option
) &key if-does-not-exist if-invalid) ¶option-cell
) &key if-does-not-exist if-invalid) ¶option-cell
) &key if-does-not-exist if-invalid) ¶option-cell
) &key if-does-not-exist if-invalid) ¶Return the (potentially empty) sequence of values from which the
effective value of OPTION has been constructed via merging.
Entries are of the form
(VALUE &rest PLIST)
where VALUE is a parsed value and PLIST contains at least the property :source holding the source object from which VALUE originated. Additional properties may describe the origin of VALUE in more detail.
standard-option
)) ¶option-cell
)) ¶Stores values and additional information regarding
their origins for the option as provided by sources
in order of decreasing priority. Entries are of the
form
(VALUE &rest PLIST)
where VALUE is a parsed value PLIST contains at least the property :source holding the source object from which VALUE originated. Additional properties may describe the origin of VALUE in more detail.
standard-option
)) ¶option-cell
)) ¶Stores values and additional information regarding
their origins for the option as provided by sources
in order of decreasing priority. Entries are of the
form
(VALUE &rest PLIST)
where VALUE is a parsed value PLIST contains at least the property :source holding the source object from which VALUE originated. Additional properties may describe the origin of VALUE in more detail.
Return a sequence of the options contained in CONTAINER.
list-container-mixin
)) ¶Stores a sorted list of named options. The contained options are sorted according to ‘name<’.
Process the configuration information in SOURCE providing the resulting configuration options to SINK.
cascade-source
) sink) ¶file-source
) sink) ¶stream-source
) sink) ¶environment-variables-source
) sink) ¶defaults-source
) sink) ¶Process content of SOURCE assuming syntax SYNTAX and provide resulting options to SINK.
Parse RAW and return a value object taking into account properties of SCHEMA-ITEM.
type-based-conversion-mixin
) raw) ¶Like ‘raw->value’ but may incorporate TYPE, besides SCHEMA-ITEM, into the parsing of RAW into a value object.
type-based-conversion-mixin
) raw (type (eql and)
) &key inner-type) ¶type-based-conversion-mixin
) raw (type (eql or)
) &key inner-type) ¶type-based-conversion-mixin
) (raw string
) (type (eql list)
) &rest args &key inner-type) ¶type-based-conversion-mixin
) (raw list
) (type (eql list)
) &key inner-type) ¶type-based-conversion-mixin
) (raw string
) (type (eql configuration.options:directory-pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (raw string
) (type (eql configuration.options:file-pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (raw string
) (type (eql pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (raw string
) (type (eql member)
) &key inner-type) ¶type-based-conversion-mixin
) (raw string
) (type (eql string)
) &key inner-type) ¶type-based-conversion-mixin
) (raw string
) (type (eql integer)
) &key inner-type) ¶type-based-conversion-mixin
) (raw string
) (type (eql boolean)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (raw string
) (type (eql null)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) raw (type symbol
) &key inner-type) ¶type-based-conversion-mixin
) raw (type cons
) &key inner-type) ¶Return a sequence of the schema items contained in SCHEMA.
standard-schema
)) ¶schema-condition
)) ¶schema-syntax-error
)) ¶sink-condition
)) ¶sink
.
source-condition
)) ¶Return the inferior sources managed by SOURCE.
cascade-source
)) ¶Stores a list of sources in order of priority.
Return a sub-configuration of CONTAINER using QUERY to select options.
QUERY should generally be a name consisting of non-empty prefix of
non-wild components followed by one ‘:wild’ or ‘:wild-inferiors’
components, for example:
foo.bar.**
Queries not following this structure, such as
foo.*.bar.*
are also accepted, but can cause errors due to collisions of names
in CONTAINER after stripping the prefix:
foo.a.bar.baz -> baz
foo.b.bar.baz -> baz
The returned configuration is an instance of the class of
CONTAINER.
Options in CONTAINER matching QUERY are copied and stored in the
returned configuration as follows:
* Copied options are instances of the classes of the respective source options
* The prefix mentioned above is stripped from the names of copied options
* Copied options share the "option cell", i.e. schema link,
value storage and hooks with their respective source options.
standard-synchronizer
)) ¶Stores the object into which the synchronizer should implement changes it receives via ‘notify’ calls.
Determine whether VALUE is valid for SCHEMA-ITEM, signaling an
error or if it is invalid.
IF-INVALID controls the behavior in case VALUE is invalid for
SCHEMA-ITEM:
nil
Return nil.
’error, #’error
Signal an error which indicates VALUE being invalid.
a function
Call the function with an error object which indicates VALUE being invalid as the sole argument.
type-based-validation-mixin
) value &key if-invalid) ¶Like ‘validate-value’ but may incorporate TYPE into the decision whether VALUE is valid for SCHEMA-ITEM.
type-based-validation-mixin
) value (type (eql and)
) &key inner-type) ¶type-based-validation-mixin
) value (type (eql or)
) &key inner-type) ¶type-based-validation-mixin
) value (type (eql list)
) &key inner-type) ¶type-based-validation-mixin
) value type &key inner-type) ¶type-based-validation-mixin
) value (type symbol
) &key inner-type) ¶type-based-validation-mixin
) value (type cons
) &key inner-type) ¶Return the value of OPTION-OR-NAME in CONFIGURATION.
OPTION-OR-NAME is either an option object or an option name
designating an option in CONFIGURATION.
If CONFIGURATION is not supplied, the value of *CONFIGURATION* is
used. An error is signaled if CONFIGURATION is null.
IF-DOES-NOT-EXIST controls the behavior in case OPTION-OR-NAME is an option name (not an option object) and does not designate an option in CONFIGURATION. For a description of return values, signaled conditions and IF-DOES-NOT-EXIST, see ‘find-option’.
IF-NO-VALUE controls the behavior in case OPTION-OR-NAME does not have a value. For a description of returns values, signaled conditions and IF-NO-VALUE, see IF-DOES-NOT-EXIST in the description of ‘option-value’.
Set value of OPTION-OR-NAME in CONFIGURATION to NEW-VALUE.
OPTION-OR-NAME is either an option object or an option name
designating an option in CONFIGURATION.
If CONFIGURATION is not supplied, the value of *CONFIGURATION* is
used. An error is signaled if CONFIGURATION is null.
IF-DOES-NOT-EXIST controls the behavior in case OPTION-OR-NAME is an option name (not an option object) and does not designate an option in CONFIGURATION. For a description of return values, signaled conditions and IF-DOES-NOT-EXIST, see ‘find-option’.
IF-NO-VALUE is accepted for parity with ‘value’.
Return a string representation of VALUE taking into account properties of SCHEMA-ITEM.
type-based-conversion-mixin
) value) ¶Like ‘value->string’ but may incorporate TYPE, besides SCHEMA-ITEM, into the conversion of VALUE into a string representation.
type-based-conversion-mixin
) value (type (eql and)
) &key inner-type) ¶type-based-conversion-mixin
) value (type (eql or)
) &key inner-type) ¶type-based-conversion-mixin
) (value list
) (type (eql list)
) &key inner-type) ¶type-based-conversion-mixin
) (value pathname
) (type (eql configuration.options:directory-pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (value pathname
) (type (eql configuration.options:file-pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (value pathname
) (type (eql pathname)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (value symbol
) (type (eql member)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (value string
) (type (eql string)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) (value integer
) (type (eql integer)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) value (type (eql boolean)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) value (type (eql null)
) &key &allow-other-keys) ¶type-based-conversion-mixin
) value (type symbol
) &key inner-type) ¶type-based-conversion-mixin
) value (type cons
) &key inner-type) ¶value-condition
)) ¶value-missing-condition
)) ¶standard-option
) stream) ¶standard-schema-item
) stream) ¶describe-via-map-options-mixin
) stream) ¶standard-option
) (type (eql t)
)) ¶standard-configuration
) (type (eql t)
)) ¶documentation-mixin
) (type (eql t)
)) ¶wildcard-name
) (index integer
)) ¶sb-sequence
.
wildcard-name
) (index integer
)) ¶sb-sequence
.
wildcard-name
)) ¶sb-sequence
.
wildcard-name
) (length integer
) &key initial-element initial-contents) ¶sb-sequence
.
standard-option
)) ¶utilities.print-items
.
standard-schema-item
)) ¶utilities.print-items
.
standard-schema
)) ¶utilities.print-items
.
list-container-mixin
)) ¶utilities.print-items
.
option-cell
)) ¶utilities.print-items
.
named-mixin
)) ¶utilities.print-items
.
environment-variables-source
)) ¶utilities.print-items
.
stream-source
)) ¶utilities.print-items
.
config-file-cascade-source
)) ¶utilities.print-items
.
file-source
)) ¶utilities.print-items
.
cascade-source
)) ¶utilities.print-items
.
directory-source
)) ¶utilities.print-items
.
wildcard-name
) stream) ¶wildcard-name
) (start integer
) &optional end) ¶sb-sequence
.
Instance of subclasses of this condition class are signaled in situations involving a named binding in a container.
condition
.
Initarg | Value |
---|---|
:container | (missing-required-initarg (quote binding-condition) container) |
:name | (missing-required-initarg (quote binding-condition) name) |
Stores the name of the item which could not be found.
:name
This slot is read-only.
Stores the container object in which the requested item could not be found.
:container
This slot is read-only.
Instances of subclasses of this condition class are signaled when an attempt is made to store an item in a container under a name for which an item is already stored.
Initarg | Value |
---|---|
:existing | (missing-required-initarg (quote binding-exists-condition) existing) |
Stores the object already stored under the name in question.
:existing
This slot is read-only.
Instances of subclasses of this condition class are signaled when a requested item object cannot be found in a container.
This error is signaled when an attempt is made to store a child in a container under a name for which a child is already stored.
binding-exists-condition
.
error
.
This warning is signaled when an attempt is made to store a child in a container under a name for which a child is already stored.
binding-exists-condition
.
warning
.
This error is signaled when a requested child cannot be found in a container.
binding-missing-condition
.
error
.
This warning is signaled when a requested child cannot be found in a container.
binding-missing-condition
.
warning
.
This error is signaled when initializing a configuration source fails.
chainable-condition
.
error
.
schema-condition
.
source-condition
.
This error is signaled when a given string cannot be parsed as an option name.
parse-error
.
Stores the string which could not be parsed as an option name.
:text
This slot is read-only.
This error is signaled when an error is encountered during notification of a sink of an event originating from a source.
chainable-condition
.
error
.
value-condition
.
Stores the sink which was being notified when the error was encountered.
:sink
This slot is read-only.
Stores the event of which the was being notified when the error was encountered
:event
This slot is read-only.
Stores the name of the option that was the subject of the notification during which the error was encountered.
:name
This slot is read-only.
Stores the source from which the notification originated.
:source
This slot is read-only.
This error is signaled when an attempt is made to store a option in a container under a name for which a option is already stored.
binding-exists-condition
.
error
.
This warning is signaled when an attempt is made to store a option in a container under a name for which a option is already stored.
binding-exists-condition
.
warning
.
This error is signaled when a requested option cannot be found in a container.
binding-missing-condition
.
error
.
This warning is signaled when a requested option cannot be found in a container.
binding-missing-condition
.
warning
.
This error is signaled when a given string cannot be parsed as a value of a particular option.
Stores the type that was used in the failed parsing attempt.
common-lisp
.
(quote nil)
:type
This slot is read-only.
This error and its subclasses is signaled when an error regarding an option value is encountered.
chainable-condition
.
error
.
option-condition
.
value-condition
.
This error is signaled when processing a source in order to provide options to a sink fails.
chainable-condition
.
error
.
sink-condition
.
source-condition
.
Instances of subclasses of this condition are signaled when an unexpected condition is encountered during an operation involving a schema.
condition
.
Initarg | Value |
---|---|
:schema | (missing-required-initarg (quote schema-condition) schema) |
Stores the schema involved in the operation for which the condition is signaled.
:schema
This slot is read-only.
This error is signaled when a schema specification is syntactically incorrect.
error
.
Initarg | Value |
---|---|
:specification | (missing-required-initarg (quote schema-syntax-error) specification) |
Stores the offending specification.
:specification
This slot is read-only.
Instances of subclasses of this condition are signaled when an unexpected condition is encountered during an operation involving a sink.
condition
.
Initarg | Value |
---|---|
:sink | (missing-required-initarg (quote sink-condition) sink) |
Stores the sink involved in the operation for which the condition is signaled.
:sink
This slot is read-only.
Instances of subclasses of this condition are signaled when an unexpected condition is encountered during an operation involving a source.
condition
.
Initarg | Value |
---|---|
:source | (missing-required-initarg (quote source-condition) source) |
Stores the source involved in the operation for which the condition is signaled.
:source
This slot is read-only.
Instances of subclasses of this condition class are signaled when an option value is requested which does not exist.
Stores a symbol describing the option value which was requested but did not exist.
(quote :value)
:which
This slot is read-only.
error
.
value-missing-condition
.
value-missing-condition
.
warning
.
Instances of this class store collections of named options.
describe-via-map-options-mixin
.
list-container-mixin
.
print-items-mixin
.
Initarg | Value |
---|---|
:schema | (missing-required-initarg (quote standard-configuration) schema) |
Stores the schema object associated to the configuration object.
:schema
This slot is read-only.
Instances of this class associate an option name to an schema item and potentially an option value.
event-hook-mixin
.
named-mixin
.
print-items-mixin
.
Initarg | Value |
---|---|
:cell | (missing-required-initarg (quote standard-option) cell) |
Stores the cell which in turn stores the associated schema item and can store the actual value of the option.
:cell
This slot is read-only.
Instances of this class store named schema items which describe option names, option types and other properties. In addition, schema instances can contain child schemas.
describe-via-map-options-mixin
.
documentation-mixin
.
list-container-mixin
.
print-items-mixin
.
Stores named child schemas. Elements are of the form
(NAME . CHILD-SCHEMA)
where NAME is a wild name.
list
(quote nil)
Instances of this class associate an name or name pattern to a type and optionally a default value.
documentation-mixin
.
named-mixin
.
print-items-mixin
.
type-based-conversion-mixin
.
type-based-merging-mixin
.
type-based-validation-mixin
.
Initarg | Value |
---|---|
:type | (missing-required-initarg (quote standard-schema-item) (quote type)) |
:option-class | (quote standard-option) |
Stores the type of the option as an expression similar to a CL type.
common-lisp
.
:type
This slot is read-only.
Stores a function returning the default value of the
schema item.
Is unbound when the schema item does not have a default value.
function
Stores the name of the class that should be used for
making options corresponding to this schema item.
symbol
:option-class
This slot is read-only.
Instances of this class are notified of configuration changes via
calls of ‘notify’ generic function and implement these changes in
"target" objects such as ‘standard-configuration’ instances.
Note: this synchronizer is not thread-safe.
Initarg | Value |
---|---|
:target | (missing-required-initarg (quote standard-synchronizer) target) |
Stores the object into which the synchronizer should implement changes it receives via ‘notify’ calls.
:target
This slot is read-only.
Instances of this class represent names which contain at least one wild component.
sequence
.
Initarg | Value |
---|---|
:components | (missing-required-initarg (quote wildcard-name) components) |
Stores the components of the name.
list
:components
This slot is read-only.
A pathname syntactically suitable for designating a directory.
The pathname must have a directory but no name or type component. Such pathnames are commonly written as "foo/bar/", i.e. with a trailing "/".
A pathname syntactically suitable for designating a file.
For example, a pathname without a name component, commonly written as "foo/bar/", i.e. with a trailing "/", cannot designate a file.
Valid components of an option name.
Valid components of a non-wild option name.
Wild components of an option name (like in pathnames).
This object is used to indicate that a value cell is not occupied.
List of configuration file names in order of decreasing priority.
Controls whether "*" is accepted and interpreted as :wild component when parsing names.
Controls whether "**" is accepted and interpreted as :wild-inferiors component when parsing names.
‘pprint-fill’ the words in DOCUMENTATION onto STREAM.
standard-schema
)) ¶standard-schema
)) ¶Stores named child schemas. Elements are of the form
(NAME . CHILD-SCHEMA)
where NAME is a wild name.
list-container-mixin
)) ¶list-container-mixin
)) ¶Stores a sorted list of named options. The contained options are sorted according to ‘name<’.
standard-option
)) ¶Stores the cell which in turn stores the associated schema item and can store the actual value of the option.
cell
.
standard-schema-item
)) ¶Stores a function returning the default value of the
schema item.
Is unbound when the schema item does not have a default value.
standard-schema-item
)) ¶standard-schema-item
)) ¶standard-schema-item
)) ¶Stores a function returning the default value of the
schema item.
Is unbound when the schema item does not have a default value.
named-mixin
)) ¶Stores the name of the option.
name
.
option-cell
)) ¶option-cell
)) ¶Stores the value of the option cell.
Is unbound when the option cell does not have a value.
standard-schema
)) ¶Stores named child schemas. Elements are of the form
(NAME . CHILD-SCHEMA)
where NAME is a wild name.
environment-variables-source
)) ¶environment-variables-source
)) ¶Stores a function that maps environment variable names to option names.
file-source
)) ¶file-source
)) ¶Stores the pathname of the file from which
configuration options should be read.
defaults-source
)) ¶automatically generated reader method
defaults-source
)) ¶automatically generated writer method
cascade-source
)) ¶cascade-source
)) ¶Stores a list of sources in order of priority.
stream-source
)) ¶stream-source
)) ¶Stores the stream from which the source reads when processing.
stream-source
)) ¶stream-source
)) ¶Stores the syntax object which should be used to parse the contents of the processed stream.
file-source
)) ¶A description of the role the file source plays in the configuration scheme.
file-source
)) ¶Stores the desired element-type of the stream created for the source.
file-source
)) ¶Stores the behavior in case the specified file does not exist.
environment-variables-source
)) ¶Stores a function that maps environment variable names to option names.
file-source
)) ¶Stores the pathname of the file from which
configuration options should be read.
directory-source
)) ¶A (wild) pathname or pathname designator which will be used to collect files for the source.
stream-source
)) ¶Stores the stream from which the source reads when processing.
stream-source
)) ¶Stores the syntax object which should be used to parse the contents of the processed stream.
synchronizer-handler
)) ¶Stores the synchronizer which created this handler.
Subclasses of this condition class are signaled when a problem involving an option is encountered.
condition
.
Initarg | Value |
---|---|
:option | (missing-required-initarg (quote option-condition) option) |
Stores the involved option or its name.
:option
This slot is read-only.
Subclasses of this condition class are signaled when a problem regarding an option value is encountered.
condition
.
Initarg | Value |
---|---|
:value | (missing-required-initarg (quote value-condition) value) |
Stores the problematic option value.
:value
This slot is read-only.
structure-object
.
alexandria:non-negative-integer
(more-conditions:missing-required-initarg (quote configuration.options.sources::indexed-sink) :index)
This slot is read-only.
(more-conditions:missing-required-initarg (quote configuration.options.sources::indexed-sink) :sink)
This slot is read-only.
This source organizes a set of sources into a prioritized cascade.
Option values from sources with higher priority are shadow or are
combined with option values from sources with lower priority.
When subordinate sources are themselves cascades, their priorities are integrated into the priorities of the containing cascade.
print-items-mixin
.
Stores a list of sources in order of priority.
list
(quote nil)
:sources
This source implements a typical cascade for commandline programs.
The cascade consists of the following sources:
1. Commandline options
2. Environment variables
3. Configuration files
1. ./BASENAME.TYPE
2. ~/.config/BASENAME.TYPE
3. PREFIX/etc/BASENAME.TYPE
4. Default values
where TYPE defaults to "conf" and PREFIX defaults to "/".
Initarg | Value |
---|---|
:basename | (missing-required-initarg (quote common-cascade-source) basename) |
This source implements a cascade of file-based sources.
Names of configuration files are derived from a given base name.
The following initargs are accepted:
:prefix PREFIX
"/etc/" and CONFIG-FILE are appended to this prefix to form
the name of the system-wide (actually prefix-wide) configuration
file. Defaults to "/". Incompatible with :paths.
:paths PATHS
A list of directories containing configuration files, each of
which is merged with the value of CONFIG-FILE to produce a
configuration file name. Incompatible with :prefix.
:config-file CONFIG-FILE
A configuration file basename (without directory) with is merged with each element of PATHS to produce configuration file names.
:sources SOURCES
This initarg is accepted to maintain the protocol of the ‘cascade-source’ superclass, but is incompatible with all other initargs.
This source assigns default values to options.
This class is intended to be mixed into option container classes that need a method on ‘describe-opbject’.
Collects config files and creates corresponding subordinate sources.
The following initargs are accepted:
:pattern PATTERN
A (wild) pathname or pathname designator which will be used to
collect files for the source.
:ignore FUNCTION-OF-ONE-ARGUMENT
A function or function designator that should be called on
collected candidate files to decide whether they should be used
or ignored.
:compare FUNCTION-OF-TWO-ARGUMENTS
A function or function designator that should be used to sort collected files and thereby determine a processing order.
Initarg | Value |
---|---|
:pattern | (missing-required-initarg (quote directory-source) pattern) |
:ignore | (load-time-value (curry (function starts-with) .) t) |
:compare | (load-time-value (lambda (x y) (string< (pathname-name x) (pathname-name y))) t) |
A (wild) pathname or pathname designator which will be used to collect files for the source.
(or string pathname)
:pattern
This slot is read-only.
This class is intended to be mixed into all classes instances of which can have an associated documentation string.
Stores nil or the documentation string associated to the option.
common-lisp
.
(or null string)
:documentation
This source reads values of environment variables.
print-items-mixin
.
Stores a function that maps environment variable names to option names.
function
(configuration.options.sources::make-environment-variable-name->option-name)
:name-mapping
This class is intended to be mixed into classes which have to emit or relay events using the event hooks mechanism.
Stores the handlers of the event hook of the object.
list
(quote nil)
This source reads configuration data from files.
Initarg | Value |
---|---|
:stream | (load-time-value (make-string-input-stream ) t) |
:pathname | (missing-required-initarg (quote file-source) pathname) |
Stores the pathname of the file from which
configuration options should be read.
common-lisp
.
pathname
Stores the desired element-type of the stream created for the source.
(quote character)
:element-type
This slot is read-only.
Stores the behavior in case the specified file does not exist.
:error
:if-does-not-exist
This slot is read-only.
A description of the role the file source plays in the configuration scheme.
(or null string)
:description
This slot is read-only.
This class is intended to be mixed into classes which act as a container of options.
Stores a sorted list of named options. The contained options are sorted according to ‘name<’.
list
This class is intended to be mixed into classes instances of which have an associated name.
Initarg | Value |
---|---|
:name | (missing-required-initarg (quote named-mixin) name) |
Stores the name of the option.
Instances of this class represent all aspects of options but their
name.
Options point to cells for value storage and, transitively, the associated schema-item. Multiple options can point to one ‘option-cell’ instance.
event-hook-mixin
.
print-items-mixin
.
Initarg | Value |
---|---|
:schema-item | (missing-required-initarg (quote option-cell) schema-item) |
Stores the associated schema item which in turn
stores the type, default and documentation for the
option.
:schema-item
This slot is read-only.
Stores the value of the option cell.
Is unbound when the option cell does not have a value.
Stores values and additional information regarding
their origins for the option as provided by sources
in order of decreasing priority. Entries are of the
form
(VALUE &rest PLIST)
where VALUE is a parsed value PLIST contains at least the property :source holding the source object from which VALUE originated. Additional properties may describe the origin of VALUE in more detail.
common-lisp
.
vector
(make-array 0)
This source reads and configuration data from streams.
Supplied streams are not closed after processing.
print-items-mixin
.
Initarg | Value |
---|---|
:stream | (missing-required-initarg (quote stream-source) stream) |
:syntax | (missing-required-initarg (quote stream-source) syntax) |
Stores the stream from which the source reads when processing.
common-lisp
.
stream
:stream
Stores the syntax object which should be used to parse the contents of the processed stream.
Instances of this class are attached to event hooks of ‘option-cell’s by synchronizers in order to forward events to the event hooks of options.
funcallable-standard-object
.
Initarg | Value |
---|---|
:synchronizer | (missing-required-initarg (quote synchronizer-handler) synchronizer) |
:option | (missing-required-initarg (quote synchronizer-handler) option) |
Stores the synchronizer which created this handler.
:synchronizer
This slot is read-only.
This mixin class is intended to be mixed into schema item classes
which have to perform parsing and unparsing of values based their
types.
This behavior is implemented by a methods on ‘value->string’ and
‘raw->value’ which call ‘value->string-using-type’ and
‘raw->value-using-type’ respectively with the ‘option-type’ of the
schema item.
Default behavior is provided for some types:
* boolean
* integer
* string
* member
* pathname
* (list ELEMENT-TYPE [:inherit? INHERIT])
* (or ...)
* (and ...)
raw->value
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
raw->value-using-type
.
value->string
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
value->string-using-type
.
This mixin class is intended to be mixed into schema item classes
which have to perform merging of values based their types.
This behavior is implemented by a method on ‘merges-values’ which
calls ‘merge-value-using-type’ with the ‘option-type’ of the
schema item.
Default behavior is provided for some types:
* t: use the value with the highest priority; ignore other
values
* (list [ELEMENT-TYPE [:inherit? INHERIT]]): depending on INHERIT either use the value with highest priority or look for :inherit markers in values and concatenate values appropriately.
This mixin class is intended to be mixed into schema item classes
which have to perform validation of values based their types.
This behavior is implemented by a method on ‘validate-value’ which
calls ‘validate-value-using-type’ with the ‘option-type’ of the
schema item.
Default behavior is provided for types of the forms
* (integer ...)
* (list [ELEMENT-TYPE [:inherit? INHERIT]])
* (and ...)
* (or ...)
Jump to: | %
&
(
B C D E F G H I L M N O P R S T U V W |
---|
Jump to: | %
&
(
B C D E F G H I L M N O P R S T U V W |
---|
Jump to: | *
+
C D E I N O P S T V W |
---|
Jump to: | *
+
C D E I N O P S T V W |
---|
Jump to: | B C D E F I L M N O P S T U V W |
---|
Jump to: | B C D E F I L M N O P S T U V W |
---|