in sg/internal/policy/fs.go [20:51]
func loadPackageFromPath(path string) (Package, error) {
rv := &FSPackage{
qualifiedID: fsPackageQualifiedIDPrefix + path,
}
// load rules
{
policies, err := loader.AllRegos([]string{path})
if err != nil {
return nil, fmt.Errorf("failed to load policies: %w", err)
}
if len(policies.Modules) == 0 {
return nil, fmt.Errorf("no policies found from path: %s", path)
}
rv.parsedModules = policies.ParsedModules()
for _, module := range rv.parsedModules {
rv.rules = append(rv.rules, loadRulesFromModule(module)...)
}
}
// load package spec
{
projectSpec, err := loadPackageSpecFromDir(path)
if err != nil {
return nil, fmt.Errorf("failed to load package spec: %w", err)
}
rv.packageSpec = projectSpec
}
return rv, nil
}