Current section
Files
Jump to
Current section
Files
lib/nerves/system/linter/rule/rule.ex
defmodule Nerves.System.Linter.Rule do
@moduledoc """
A `rule` is a testable module against a buildroot defconfig.
"""
alias Nerves.System.Linter.Rule.Callbacks
defstruct [:check, :args]
@typedoc @moduledoc
@type rule :: %__MODULE__{
check: Callbacks.check,
args: Callbacks.args
}
@typedoc @moduledoc
@type t :: rule
@doc false
defmacro __using__(_) do
quote do
unless @moduledoc do
@moduledoc """
Linter Rule #{__MODULE__}
"""
end
alias Nerves.System.Linter.Rule
alias Nerves.System.Linter.Rule.Callbacks
import Callbacks
@before_compile Callbacks
@behaviour Rule
end
end
@doc "This function should be defined by `use Nerves.System.Linter.Rule`"
@callback __checks__ :: [rule]
end