mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
This change makes the core nogo package less of a "catch all", and splits functionality into multiple packages. Instead of separate binaries for each function, a single "cli" package is added with subcommands, and the core starlark wrappers are also refactored to minimize redundancy. The new "cli" package also adds support for a "render" command, which allows factors to be rendered via a Go text template. This is useful for debugging, but also allows code generation to be updated to use this mechanism. This eliminates the use of a QEMU wrapper for the older arch_genrule, and allows the use of a native bazel transition to extract facts for the appropriate generated file. In other words, the correct facts will be rendered for generating XXX_arm64.s, even on amd64. PiperOrigin-RevId: 422846459
98 lines
2.1 KiB
JSON
98 lines
2.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"definitions": {
|
|
"group": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "The name of the group.",
|
|
"type": "string"
|
|
},
|
|
"regex": {
|
|
"description": "A regular expression for matching paths.",
|
|
"type": "string"
|
|
},
|
|
"default": {
|
|
"description": "Whether the group is enabled by default.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"regex",
|
|
"default"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"regexlist": {
|
|
"description": "A list of regular expressions.",
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rule": {
|
|
"type": "object",
|
|
"properties": {
|
|
"exclude": {
|
|
"description": "A regular expression for paths to exclude.",
|
|
"$ref": "#/definitions/regexlist"
|
|
},
|
|
"suppress": {
|
|
"description": "A regular expression for messages to suppress.",
|
|
"$ref": "#/definitions/regexlist"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ruleList": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/rule"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"properties": {
|
|
"groups": {
|
|
"description": "A definition of all groups.",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/group"
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"global": {
|
|
"description": "A global set of rules.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/rule"
|
|
}
|
|
},
|
|
"analyzers": {
|
|
"description": "A definition of all groups.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/ruleList"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"groups"
|
|
],
|
|
"additionalProperties": false
|
|
}
|