summaryrefslogtreecommitdiff
path: root/lint
diff options
context:
space:
mode:
Diffstat (limited to 'lint')
-rw-r--r--lint/RULES292
-rw-r--r--lint/TARGETS3
-rwxr-xr-xlint/call_lint45
-rwxr-xr-xlint/call_summary36
4 files changed, 0 insertions, 376 deletions
diff --git a/lint/RULES b/lint/RULES
deleted file mode 100644
index add3cdb..0000000
--- a/lint/RULES
+++ /dev/null
@@ -1,292 +0,0 @@
-{ "defaults":
- { "doc":
- [ "A rule to provide default paths common to all lint targets."
- , ""
- , "While lint targets bring their own host directory via the"
- , "field \"config\", it can still be necessary to bring some"
- , "default paths, e.g., for finding the compiler, or the interpreter"
- , "for the runner."
- ]
- , "string_fields": ["PATH"]
- , "target_fields": ["base"]
- , "field_doc":
- { "base": ["Other targets to inherit values from."]
- , "PATH":
- [ "Paths for looking up system tools."
- , "Specifying this field extends values from \"base\"."
- ]
- }
- , "imports": {"base-provides-++": ["CC", "defaults-base-provides-++"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "PATH"
- , { "type": "nub_left"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "FIELD", "name": "PATH"}
- , { "type": "let*"
- , "bindings": [["provider", "PATH"]]
- , "body":
- {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- }
- ]
- }
- }
- ]
- ]
- , "body": {"type": "RESULT", "provides": {"type": "env", "vars": ["PATH"]}}
- }
- }
-, "targets":
- { "doc":
- [ "Run a given linter on the lint information provided by the given targets."
- ]
- , "target_fields": ["linter", "config", "summarizer", "targets"]
- , "string_fields": ["name"]
- , "tainted": ["lint"]
- , "field_doc":
- { "linter":
- [ "Single artifact running the lint checks."
- , ""
- , "This program is invoked with"
- , "- argv[1] the file to lint, and"
- , "- argv[2:] the original command line."
- , "This invocation happens in an environment with"
- , "- CONFIG pointing to the directory with all the artifacts given"
- , " by the field \"config\", and"
- , "- OUT pointing to a directory to which files with the lint result"
- , " can be written."
- , "- META pointing to a json file containing"
- , " - at key \"direct deps artifact names\" a list of all input"
- , " artifacts that come from the target itself or are runfiles of a"
- , " direct dependency."
- , " - at key \"extra outs\" a list of extra output artifacts that the"
- , " command might produce, such as DWARF objects if debug fission is"
- , " enabled."
- , "- TMPDIR pointing to a directory location that can be used to"
- , " create additional temporary files."
- , "It is supposed to indicate by the exit code whether the file to lint"
- , "complies with the given linting policy, with 0 meaning"
- , "compliant."
- , "Stdout and stderr, as well as the directory ${OUT} can be used to"
- , "provide additional information."
- ]
- , "config": ["Any configuration or other files needed by the linter."]
- , "summarizer":
- [ "Single artifact generating a summary of the individual lint results."
- , "It will be called in a directory where all subdirectories"
- , "except . and .. represent the results of the individual lint"
- , "actions. Those are given as"
- , " - a file \"result\" with content \"PASS\" if and only if the lint"
- , " action exited 0,"
- , " - files \"stdout\" and \"stderr\" with stdout and stderr of the lint"
- , " action, and"
- , " - a directory \"out\" with the additional information provided by the"
- , " lint action."
- , "The summarizer is required to indicate the overall result by the exit"
- , "code, produce a human-readable summary on stdout, and optionally"
- , "additional information in the directory ${OUT}."
- ]
- , "call_lint": ["Launcher for the linter"]
- , "call_summary": ["Launcher for the summarizer"]
- , "name":
- [ "Name of the kind of lint check performed, to be reported"
- , "when an action is failing."
- ]
- }
- , "implicit":
- { "defaults": ["defaults"]
- , "call_lint": ["call_lint"]
- , "call_summary": ["call_summary"]
- }
- , "config_transitions": {"targets": [{"type": "'", "$1": {"LINT": true}}]}
- , "anonymous":
- {"lint": {"target": "targets", "provider": "lint", "rule_map": {}}}
- , "imports":
- { "stage": ["", "stage_singleton_field"]
- , "artifacts": ["", "field_artifacts"]
- , "default-PATH": ["CC", "default-PATH"]
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "linter"
- , { "type": "let*"
- , "bindings": [["fieldname", "linter"], ["location", "linter"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , [ "runner"
- , { "type": "let*"
- , "bindings": [["fieldname", "call_lint"], ["location", "runner"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , [ "config"
- , { "type": "let*"
- , "bindings": [["fieldname", "config"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"}
- }
- ]
- , [ "PATH"
- , { "type": "join"
- , "separator": ":"
- , "$1": {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- }
- ]
- , ["name", {"type": "join", "$1": {"type": "FIELD", "name": "name"}}]
- , [ "lint results"
- , { "type": "foreach"
- , "range": {"type": "FIELD", "name": "lint"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "src"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "_"}
- , "provider": "src"
- }
- ]
- , [ "cmd"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "_"}
- , "provider": "cmd"
- }
- ]
- , [ "src input"
- , { "type": "DEP_ARTIFACTS"
- , "dep": {"type": "var", "name": "_"}
- }
- ]
- , [ "direct deps artifact names"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "_"}
- , "provider": "direct deps artifact names"
- }
- ]
- , [ "extra outs"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "_"}
- , "provider": "extra outs"
- }
- ]
- ]
- , "body":
- { "type": "TREE"
- , "$1":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "runner"}
- , {"type": "var", "name": "linter"}
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1": {"type": "var", "name": "src input"}
- }
- , { "type": "to_subdir"
- , "subdir": "config"
- , "$1": {"type": "var", "name": "config"}
- }
- , { "type": "singleton_map"
- , "key": "meta.json"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "json_encode"
- , "$1":
- { "type": "env"
- , "vars":
- ["direct deps artifact names", "extra outs"]
- }
- }
- }
- }
- ]
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ ["./runner", {"type": "var", "name": "src"}]
- , {"type": "var", "name": "cmd"}
- ]
- }
- , "env": {"type": "env", "vars": ["PATH"]}
- , "outs": ["stdout", "stderr", "result"]
- , "out_dirs": ["out"]
- , "may_fail": ["lint"]
- , "fail_message":
- { "type": "join"
- , "$1":
- [ "lint "
- , {"type": "var", "name": "name"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "name"}
- , "then": " failed for "
- , "else": "failed for "
- }
- , {"type": "var", "name": "src"}
- ]
- }
- }
- }
- }
- }
- ]
- , [ "lint results"
- , {"type": "nub_right", "$1": {"type": "var", "name": "lint results"}}
- ]
- , [ "summary input"
- , {"type": "enumerate", "$1": {"type": "var", "name": "lint results"}}
- ]
- , [ "summarizer"
- , { "type": "let*"
- , "bindings":
- [["fieldname", "summarizer"], ["location", "summarizer"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , [ "runner"
- , { "type": "let*"
- , "bindings": [["fieldname", "call_summary"], ["location", "runner"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , [ "summary"
- , { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "runner"}
- , {"type": "var", "name": "summarizer"}
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1": {"type": "var", "name": "summary input"}
- }
- ]
- }
- , "cmd": ["./runner"]
- , "outs": ["report", "result"]
- , "out_dirs": ["out"]
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "summary"}
- , { "type": "singleton_map"
- , "key": "work"
- , "value":
- {"type": "TREE", "$1": {"type": "var", "name": "summary input"}}
- }
- ]
- }
- }
- }
- }
-}
diff --git a/lint/TARGETS b/lint/TARGETS
deleted file mode 100644
index de52b00..0000000
--- a/lint/TARGETS
+++ /dev/null
@@ -1,3 +0,0 @@
-{ "defaults":
- {"type": "defaults", "base": [["CC", "defaults"], ["shell", "defaults"]]}
-}
diff --git a/lint/call_lint b/lint/call_lint
deleted file mode 100755
index 850812e..0000000
--- a/lint/call_lint
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-# Copyright 2024 Huawei Cloud Computing Technology Co., Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# ensure all required outputs are present
-touch stdout
-touch stderr
-RESULT=UNKNOWN
-echo "${RESULT}" > result
-
-mkdir -p out
-export OUT="$(pwd)/out"
-mkdir -p config
-export CONFIG="$(pwd)/config"
-export META="$(pwd)/meta.json"
-mkdir scratch
-export TMPDIR=$(realpath scratch)
-
-cd work
-
-if ../linter "$@" > ../stdout 2> ../stderr
-then
- RESULT=PASS
-else
- RESULT=FAIL
-fi
-
-echo "${RESULT}" > ../result
-
-if [ "${RESULT}" '!=' PASS ]
-then
- exit 1;
-fi
diff --git a/lint/call_summary b/lint/call_summary
deleted file mode 100755
index 9686d0a..0000000
--- a/lint/call_summary
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# Copyright 2024 Huawei Cloud Computing Technology Co., Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# ensure all required outputs are present
-touch report
-RESULT=UNKNOWN
-echo "${RESULT}" > result
-
-mkdir -p out
-export OUT="$(pwd)/out"
-
-cd work
-
-if ../summarizer > ../report
-then
- RESULT=PASS
-else
- RESULT=FAIL
-fi
-
-echo "${RESULT}" > ../result
-
-exit 0