From 0f1f9ce49baf929c988b22ce2d03f5242e4b2a97 Mon Sep 17 00:00:00 2001 From: Alexandre Pujol Date: Tue, 26 Mar 2024 18:07:48 +0000 Subject: [PATCH] build: use new internal structure. --- pkg/prebuild/prebuild.go | 2 +- pkg/prebuild/prepare/flags.go | 24 +++++++----------------- pkg/prebuild/prepare/ignore.go | 20 +++++--------------- pkg/util/tools.go | 1 - 4 files changed, 13 insertions(+), 34 deletions(-) diff --git a/pkg/prebuild/prebuild.go b/pkg/prebuild/prebuild.go index 77ff86aef..56e1fc7b6 100644 --- a/pkg/prebuild/prebuild.go +++ b/pkg/prebuild/prebuild.go @@ -33,7 +33,7 @@ func init() { case "ubuntu": if cfg.Release["VERSION_CODENAME"] == "noble" { builder.Register("abi3") - cfg.Overwrite = true + cfg.Overwrite.Enabled = true } } } diff --git a/pkg/prebuild/prepare/flags.go b/pkg/prebuild/prepare/flags.go index ee55a28ac..995b13916 100644 --- a/pkg/prebuild/prepare/flags.go +++ b/pkg/prebuild/prepare/flags.go @@ -32,27 +32,17 @@ func init() { func (p SetFlags) Apply() ([]string, error) { res := []string{} - for _, name := range []string{"main.flags", cfg.Distribution + ".flags"} { - path := cfg.FlagDir.Join(name) - if !path.Exist() { - continue - } - lines, _ := path.ReadFileAsLines() - for _, line := range lines { - if strings.HasPrefix(line, "#") || line == "" { - continue - } - manifest := strings.Split(line, " ") - profile := manifest[0] + for _, name := range []string{"main", cfg.Distribution} { + for profile, flags := range cfg.Flags.Read(name) { file := cfg.RootApparmord.Join(profile) if !file.Exist() { res = append(res, fmt.Sprintf("Profile %s not found, ignoring", profile)) continue } - // If flags is set, overwrite profile flag - if len(manifest) > 1 { - flags := " flags=(" + manifest[1] + ") {" + // Overwrite profile flags + if len(flags) > 0 { + flagsStr := " flags=(" + strings.Join(flags, ",") + ") {" content, err := file.ReadFile() if err != nil { return res, err @@ -60,13 +50,13 @@ func (p SetFlags) Apply() ([]string, error) { // Remove all flags definition, then set manifest' flags out := regFlags.ReplaceAllLiteralString(string(content), "") - out = regProfileHeader.ReplaceAllLiteralString(out, flags) + out = regProfileHeader.ReplaceAllLiteralString(out, flagsStr) if err := file.WriteFile([]byte(out)); err != nil { return res, err } } } - res = append(res, path.String()) + res = append(res, cfg.FlagDir.Join(name+".flags").String()) } return res, nil } diff --git a/pkg/prebuild/prepare/ignore.go b/pkg/prebuild/prepare/ignore.go index 23b144225..3fd01495d 100644 --- a/pkg/prebuild/prepare/ignore.go +++ b/pkg/prebuild/prepare/ignore.go @@ -5,8 +5,6 @@ package prepare import ( - "strings" - "github.com/arduino/go-paths-helper" "github.com/roddhjav/apparmor.d/pkg/prebuild/cfg" ) @@ -26,19 +24,11 @@ func init() { func (p Ignore) Apply() ([]string, error) { res := []string{} - for _, name := range []string{"main.ignore", cfg.Distribution + ".ignore"} { - path := cfg.DistDir.Join("ignore", name) - if !path.Exist() { - continue - } - lines, _ := path.ReadFileAsLines() - for _, line := range lines { - if strings.HasPrefix(line, "#") || line == "" { - continue - } - profile := cfg.Root.Join(line) + for _, name := range []string{"main", cfg.Distribution} { + for _, ignore := range cfg.Ignore.Read(name) { + profile := cfg.Root.Join(ignore) if profile.NotExist() { - files, err := cfg.RootApparmord.ReadDirRecursiveFiltered(nil, paths.FilterNames(line)) + files, err := cfg.RootApparmord.ReadDirRecursiveFiltered(nil, paths.FilterNames(ignore)) if err != nil { return res, err } @@ -53,7 +43,7 @@ func (p Ignore) Apply() ([]string, error) { } } } - res = append(res, path.String()) + res = append(res, cfg.IgnoreDir.Join(name+".ignore").String()) } return res, nil } diff --git a/pkg/util/tools.go b/pkg/util/tools.go index 64b71bd00..75a7258fe 100644 --- a/pkg/util/tools.go +++ b/pkg/util/tools.go @@ -94,4 +94,3 @@ func CopyTo(src *paths.Path, dst *paths.Path) error { } return nil } -