diff --git a/pkg/aa/blocks.go b/pkg/aa/blocks.go new file mode 100644 index 00000000..544106db --- /dev/null +++ b/pkg/aa/blocks.go @@ -0,0 +1,39 @@ +// apparmor.d - Full set of apparmor profiles +// Copyright (C) 2021-2024 Alexandre Pujol +// SPDX-License-Identifier: GPL-2.0-only + +package aa + +const ( + tokHAT = "hat" + tokCARET = "^" +) + +// Hat represents a single AppArmor hat. +type Hat struct { + RuleBase + Name string + Rules Rules +} + +func (p *Hat) Less(other any) bool { + o, _ := other.(*Hat) + return p.Name < o.Name +} + +func (p *Hat) Equals(other any) bool { + o, _ := other.(*Profile) + return p.Name == o.Name +} + +func (p *Hat) String() string { + return renderTemplate(p.Kind(), p) +} + +func (p *Hat) Constraint() constraint { + return blockKind +} + +func (p *Hat) Kind() string { + return tokHAT +}