43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
# Requirements schema — contract types for tool declarations and execution contexts.
|
|
# Imported by: reflection/requirements/base.ncl, reflection/requirements/contexts.ncl
|
|
#
|
|
# NOTE: This file is a contract library — do not `nickel export` it directly.
|
|
# Export base.ncl or contexts.ncl instead.
|
|
|
|
let severity_type = [| 'Hard, 'Soft |] in
|
|
|
|
# A tool or external dependency that operations in this project require.
|
|
let tool_type = {
|
|
id | String | default = "",
|
|
binary | String | default = "",
|
|
description | String | default = "",
|
|
version_min | String | default = "0.0.0",
|
|
check_cmd | String | default = "",
|
|
version_extract | String | default = "(\\d+\\.\\d+\\.\\d+)",
|
|
install_hint | String | default = "",
|
|
docs_url | String | optional,
|
|
severity | severity_type | default = 'Soft,
|
|
contexts | Array String | default = [],
|
|
used_by_forms | Array String | default = [],
|
|
used_by_modes | Array String | default = [],
|
|
config_check | String | optional,
|
|
config_hint | String | optional,
|
|
# When set, presence is checked via `plugin list` instead of `which`.
|
|
# The check_cmd is still run to extract version from `plugin list` output.
|
|
plugin_name | String | optional,
|
|
} in
|
|
|
|
# A named execution context with a subset of required tools.
|
|
let context_type = {
|
|
id | String | default = "",
|
|
description | String | default = "",
|
|
requires | Array String | default = [],
|
|
note | String | optional,
|
|
} in
|
|
|
|
{
|
|
Tool = tool_type,
|
|
Context = context_type,
|
|
Severity = severity_type,
|
|
}
|