[engine] Allow additional callback arguments

Relax restrictions on the signature of check callbacks to allow for
additional arguments with default values, which will allow downstream
library users to override check parameters (e.g. the `simplify`
parameter to the `gofmt` check).

Also add some additional validation of the callback signature to ensure
standardization.

Change-Id: I984a4d1002ed81807ca4ff28298dd0e464cc1a51
Reviewed-on: https://fuchsia-review.googlesource.com/c/shac-project/shac/+/865296
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Marc-Antoine Ruel <maruel@google.com>
Fuchsia-Auto-Submit: Oliver Newman <olivernewman@google.com>
8 files changed
tree: 66a68035bc34f4c3459367599811e0639989d8a8
  1. .github/
  2. doc/
  3. images/
  4. internal/
  5. scripts/
  6. .gitignore
  7. AUTHORS
  8. check_doc.star
  9. codecov.yml
  10. CONTRIBUTING.md
  11. go.mod
  12. go.star
  13. go.sum
  14. LICENSE
  15. licenses.star
  16. main.go
  17. OWNERS
  18. PATENTS
  19. README.md
  20. shac.star
  21. shac.textproto
README.md

shac

Shac (Scalable Hermetic Analysis and Checks) is a unified and ergonomic tool and framework for writing and running static analysis checks.

Shac checks are written in Starlark.

usage demonstration

Usage

go install go.fuchsia.dev/shac-project/shac@latest
shac check
shac doc shac.star | less

Documentation

Contributing

⚠ The source of truth is at https://fuchsia.googlesource.com/shac-project/shac.git and uses Gerrit for code review.

See CONTRIBUTING.md to submit changes.