Nagelfar Bazel rules

Rules

Aspects

nagelfar_toolchain

load("@rules_tcl//tcl/nagelfar:defs.bzl", "nagelfar_toolchain")

nagelfar_toolchain(name, nagelfar, syntaxdb)

A toolchain rule for configuring the Nagelfar Tcl syntax checker.

The nagelfar_toolchain rule specifies the Nagelfar script and syntax database files used by tcl_nagelfar_aspect and tcl_nagelfar_test for static analysis of Tcl code.

Typically, you don't need to define this directly. Instead, use the bzlmod extension:

nagelfar = use_extension("@rules_tcl//tcl/nagelfar:extensions.bzl", "nagelfar")
nagelfar.toolchain()
use_repo(nagelfar, "nagelfar_toolchains")
register_toolchains("@nagelfar_toolchains//:all")

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
nagelfarThe nagelfar.tcl script.Labelrequired
syntaxdbNagelfar syntax database files.LabeloptionalNone

tcl_nagelfar_test

load("@rules_tcl//tcl/nagelfar:defs.bzl", "tcl_nagelfar_test")

tcl_nagelfar_test(name, target)

A test rule for performing Nagelfar static analysis on a Tcl target.

Usage:

load("@rules_tcl//tcl/nagelfar:tcl_nagelfar_test.bzl", "tcl_nagelfar_test")

tcl_nagelfar_test(
    name = "mylib_nagelfar",
    target = ":mylib",
)

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
targetThe Tcl target to perform Nagelfar analysis on.Labelrequired

tcl_nagelfar_aspect

load("@rules_tcl//tcl/nagelfar:defs.bzl", "tcl_nagelfar_aspect")

tcl_nagelfar_aspect()

An aspect for performing Nagelfar static analysis on Tcl targets.

The tcl_nagelfar_aspect applies Nagelfar checks to all Tcl targets in the dependency graph.

Usage:

bazel build //my:target \
    --aspects=@rules_tcl//tcl/nagelfar:tcl_nagelfar_aspect.bzl%tcl_nagelfar_aspect \
    --output_groups=+tcl_nagelfar_checks

Or configure it in your .bazelrc:

build:nagelfar --aspects=@rules_tcl//tcl/nagelfar:tcl_nagelfar_aspect.bzl%tcl_nagelfar_aspect
build:nagelfar --output_groups=+tcl_nagelfar_checks

Ignoring targets:

To skip Nagelfar for specific targets, add one of these tags:

  • no_tcl_nagelfar
  • no_nagelfar
  • no_lint
  • nolint

ASPECT ATTRIBUTES

ATTRIBUTES