From 881f02b21325d060a8eeb4fba76065ffb49dde62 Mon Sep 17 00:00:00 2001 From: Alexander Jung Date: Thu, 21 Nov 2024 17:09:09 +0100 Subject: [PATCH 1/2] fix(pkg): Prioritize kernel packaging This commit re-orders the kernel packager to be first such that it can be used in the context of an existing working directory. Since the kernel is a known flag, we can safely assume that the user knows what they are doing and can allow them to manipulate the package manager directly. Signed-off-by: Alexander Jung --- internal/cli/kraft/pkg/packager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/cli/kraft/pkg/packager.go b/internal/cli/kraft/pkg/packager.go index 518fa0ad1..ab5bb69d4 100644 --- a/internal/cli/kraft/pkg/packager.go +++ b/internal/cli/kraft/pkg/packager.go @@ -34,9 +34,9 @@ type packager interface { // is used with the controller. func packagers() []packager { return []packager{ + &packagerCliKernel{}, &packagerKraftfileUnikraft{}, &packagerKraftfileRuntime{}, - &packagerCliKernel{}, &packagerDockerfile{}, } } From 5b3a40cc30be9a8e13a9b7db7110e81dbdf62912 Mon Sep 17 00:00:00 2001 From: Alexander Jung Date: Thu, 21 Nov 2024 17:13:47 +0100 Subject: [PATCH 2/2] feat(pkg): Intelligently handle architecture in `--plat` flag Signed-off-by: Alexander Jung --- internal/cli/kraft/pkg/packager_cli_kernel.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/cli/kraft/pkg/packager_cli_kernel.go b/internal/cli/kraft/pkg/packager_cli_kernel.go index 8082ebc8e..b24d04ec3 100644 --- a/internal/cli/kraft/pkg/packager_cli_kernel.go +++ b/internal/cli/kraft/pkg/packager_cli_kernel.go @@ -8,6 +8,7 @@ package pkg import ( "context" "fmt" + "strings" "kraftkit.sh/config" "kraftkit.sh/internal/cli/kraft/utils" @@ -29,12 +30,15 @@ func (p *packagerCliKernel) String() string { // Packagable implements packager. func (p *packagerCliKernel) Packagable(ctx context.Context, opts *PkgOptions, args ...string) (bool, error) { - if len(opts.Kernel) > 0 && len(opts.Architecture) > 0 && len(opts.Platform) > 0 { + if len(opts.Kernel) > 0 && len(opts.Platform) > 0 { + if len(opts.Architecture) == 0 && strings.Contains(opts.Platform, "/") { + opts.Platform, opts.Architecture, _ = strings.Cut(opts.Platform, "/") + } return true, nil } if len(opts.Kernel) > 0 { - log.G(ctx).Warn("--kernel flag set but must be used in conjunction with -m|--arch and -p|--plat") + log.G(ctx).Warn("--kernel flag set but must be used in conjunction with -m|--arch and/or -p|--plat") } return false, fmt.Errorf("cannot package without path to -k|-kernel, -m|--arch and -p|--plat")