Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert recent filtering #751

Merged
merged 3 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 18 additions & 32 deletions distrobuilder/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,38 +169,6 @@ func main() {
return
}

// Get the image definition
globalCmd.definition, err = getDefinition(args[0], globalCmd.flagOptions)
if err != nil {
fmt.Fprintf(os.Stderr, "Failed reading definition: %s\n", err)
os.Exit(1)
}

// Set VM target type if we're building or packing a VM.
isTargetVM, _ := cmd.Flags().GetBool("vm")
if isTargetVM {
globalCmd.definition.Targets.Type = shared.DefinitionFilterTypeVM
}

// Get image targets depending on the subcommand and flags.
var imageTargets shared.ImageTarget

if strings.HasPrefix(cmd.CalledAs(), "build-") {
imageTargets = shared.ImageTargetUndefined
}

if cmd.CalledAs() != "build-dir" {
imageTargets |= shared.ImageTargetAll
}

if isTargetVM {
imageTargets |= shared.ImageTargetVM
} else {
imageTargets |= shared.ImageTargetContainer
}

globalCmd.definition.ApplyFilters(imageTargets)

// Create temp directory if the cache directory isn't explicitly set
if globalCmd.flagCacheDir == "" {
dir, err := os.MkdirTemp("/var/cache", "distrobuilder.")
Expand All @@ -211,6 +179,12 @@ func main() {

globalCmd.flagCacheDir = dir
}

// Set VM target type if we're building or packing a VM.
isTargetVM, _ := cmd.Flags().GetBool("vm")
if isTargetVM {
globalCmd.definition.Targets.Type = shared.DefinitionFilterTypeVM
}
},
PersistentPostRunE: globalCmd.postRun,
CompletionOptions: cobra.CompletionOptions{DisableDefaultCmd: true},
Expand Down Expand Up @@ -332,6 +306,12 @@ func (c *cmdGlobal) preRunBuild(cmd *cobra.Command, args []string) error {
return fmt.Errorf("Failed to create directory %q: %w", c.sourceDir, err)
}

// Get the image definition
c.definition, err = getDefinition(args[0], c.flagOptions)
if err != nil {
return fmt.Errorf("Failed to get definition: %w", err)
}

// Create cache directory if we also plan on creating LXC or LXD images
if !isRunningBuildDir {
err = os.MkdirAll(c.flagCacheDir, 0755)
Expand Down Expand Up @@ -487,6 +467,12 @@ func (c *cmdGlobal) preRunPack(cmd *cobra.Command, args []string) error {
c.targetDir = args[2]
}

// Get the image definition
c.definition, err = getDefinition(args[0], c.flagOptions)
if err != nil {
return fmt.Errorf("Failed to get definition: %w", err)
}

return nil
}

Expand Down
4 changes: 4 additions & 0 deletions distrobuilder/main_build-dir.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ func (c *cmdBuildDir) command() *cobra.Command {
PostRunE: func(cmd *cobra.Command, args []string) error {
// Run global generators
for _, file := range c.global.definition.Files {
if !shared.ApplyFilter(&file, c.global.definition.Image.Release, c.global.definition.Image.ArchitectureMapped, c.global.definition.Image.Variant, c.global.definition.Targets.Type, 0) {
continue
}

generator, err := generators.Load(file.Generator, c.global.logger, c.global.flagCacheDir, c.global.targetDir, file, *c.global.definition)
if err != nil {
return fmt.Errorf("Failed to load generator %q: %w", file.Generator, err)
Expand Down
6 changes: 6 additions & 0 deletions distrobuilder/main_lxc.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,12 @@ func (c *cmdLXC) run(cmd *cobra.Command, args []string, overlayDir string) error
c.global.flagCacheDir, *c.global.definition)

for _, file := range c.global.definition.Files {
if !shared.ApplyFilter(&file, c.global.definition.Image.Release, c.global.definition.Image.ArchitectureMapped, c.global.definition.Image.Variant, c.global.definition.Targets.Type, shared.ImageTargetUndefined|shared.ImageTargetAll|shared.ImageTargetContainer) {
c.global.logger.WithField("generator", file.Generator).Info("Skipping generator")

continue
}

generator, err := generators.Load(file.Generator, c.global.logger, c.global.flagCacheDir, overlayDir, file, *c.global.definition)
if err != nil {
return fmt.Errorf("Failed to load generator %q: %w", file.Generator, err)
Expand Down
4 changes: 4 additions & 0 deletions distrobuilder/main_lxd.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,10 @@ func (c *cmdLXD) run(cmd *cobra.Command, args []string, overlayDir string) error
}

for _, file := range c.global.definition.Files {
if !shared.ApplyFilter(&file, c.global.definition.Image.Release, c.global.definition.Image.ArchitectureMapped, c.global.definition.Image.Variant, c.global.definition.Targets.Type, imageTargets) {
continue
}

generator, err := generators.Load(file.Generator, c.global.logger, c.global.flagCacheDir, overlayDir, file, *c.global.definition)
if err != nil {
return fmt.Errorf("Failed to load generator %q: %w", file.Generator, err)
Expand Down
18 changes: 16 additions & 2 deletions managers/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,19 @@ func Load(ctx context.Context, managerName string, logger *logrus.Logger, defini

// ManagePackages manages packages.
func (m *Manager) ManagePackages(imageTarget shared.ImageTarget) error {
var validSets []shared.DefinitionPackagesSet

for _, set := range m.def.Packages.Sets {
if !shared.ApplyFilter(&set, m.def.Image.Release, m.def.Image.ArchitectureMapped, m.def.Image.Variant, m.def.Targets.Type, imageTarget) {
continue
}

validSets = append(validSets, set)
}

// If there's nothing to install or remove, and no updates need to be performed,
// we can exit here.
if len(m.def.Packages.Sets) == 0 && !m.def.Packages.Update {
if len(validSets) == 0 && !m.def.Packages.Update {
return nil
}

Expand Down Expand Up @@ -127,7 +137,7 @@ func (m *Manager) ManagePackages(imageTarget shared.ImageTarget) error {
}
}

for _, set := range optimizePackageSets(m.def.Packages.Sets) {
for _, set := range optimizePackageSets(validSets) {
if set.Action == "install" {
err = m.mgr.install(set.Packages, set.Flags)
} else if set.Action == "remove" {
Expand Down Expand Up @@ -158,6 +168,10 @@ func (m *Manager) ManageRepositories(imageTarget shared.ImageTarget) error {
}

for _, repo := range m.def.Packages.Repositories {
if !shared.ApplyFilter(&repo, m.def.Image.Release, m.def.Image.ArchitectureMapped, m.def.Image.Variant, m.def.Targets.Type, imageTarget) {
continue
}

// Run template on repo.URL
repo.URL, err = shared.RenderTemplate(repo.URL, m.def)
if err != nil {
Expand Down
Loading
Loading