mirror of
https://github.com/roddhjav/apparmor.d.git
synced 2024-11-15 07:54:17 +01:00
51 lines
999 B
Go
51 lines
999 B
Go
|
// apparmor.d - Full set of apparmor profiles
|
||
|
// Copyright (C) 2023 Alexandre Pujol <alexandre@pujol.io>
|
||
|
// SPDX-License-Identifier: GPL-2.0-only
|
||
|
|
||
|
package prebuild
|
||
|
|
||
|
import (
|
||
|
"github.com/arduino/go-paths-helper"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
Distribution string
|
||
|
DistDir *paths.Path
|
||
|
Root *paths.Path
|
||
|
RootApparmord *paths.Path
|
||
|
)
|
||
|
|
||
|
func init() {
|
||
|
DistDir = paths.New("dists")
|
||
|
Root = paths.New(".build")
|
||
|
RootApparmord = Root.Join("apparmor.d")
|
||
|
Distribution = getSupportedDistribution()
|
||
|
}
|
||
|
|
||
|
func Prepare() error {
|
||
|
for _, fct := range Prepares {
|
||
|
if err := fct(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func Build() error {
|
||
|
files, _ := RootApparmord.ReadDirRecursiveFiltered(nil, paths.FilterOutDirectories())
|
||
|
for _, file := range files {
|
||
|
if !file.Exist() {
|
||
|
continue
|
||
|
}
|
||
|
content, _ := file.ReadFile()
|
||
|
profile := string(content)
|
||
|
for _, fct := range Builds {
|
||
|
profile = fct(profile)
|
||
|
}
|
||
|
if err := file.WriteFile([]byte(profile)); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|