//go:build unix package permcheck import ( "context" "log/slog" "github.com/AdguardTeam/AdGuardHome/internal/aghos" ) // check is the Unix-specific implementation of [Check]. func check( ctx context.Context, l *slog.Logger, workDir string, dataDir string, statsDir string, querylogDir string, confFilePath string, ) { dirLoggger, fileLogger := l.With("type", typeDir), l.With("type", typeFile) for _, ent := range entities(workDir, dataDir, statsDir, querylogDir, confFilePath) { if ent.Value { checkDir(ctx, dirLoggger, ent.Key) } else { checkFile(ctx, fileLogger, ent.Key) } } } // checkDir checks the permissions of a single directory. The results are // logged at the appropriate level. func checkDir(ctx context.Context, l *slog.Logger, dirPath string) { checkPath(ctx, l, dirPath, aghos.DefaultPermDir) } // checkFile checks the permissions of a single file. The results are logged at // the appropriate level. func checkFile(ctx context.Context, l *slog.Logger, filePath string) { checkPath(ctx, l, filePath, aghos.DefaultPermFile) }