From df3d7096b4e149736e8c4d3449aa9c31ab00a69f Mon Sep 17 00:00:00 2001 From: Federico Di Pierro Date: Fri, 3 Nov 2023 17:22:35 +0100 Subject: [PATCH] chore(internal,pkg): fixup some linting issues. Signed-off-by: Federico Di Pierro --- cmd/driver/driver_linux.go | 3 ++- cmd/driver/prepare/prepare.go | 1 + cmd/driver/select/select.go | 1 + internal/config/config.go | 1 + pkg/driver/distro/amzn.go | 15 ++++++++------- pkg/driver/distro/bottlerocket.go | 3 ++- pkg/driver/distro/debian.go | 3 ++- pkg/driver/distro/distro.go | 8 +++++++- pkg/driver/distro/flatcar.go | 1 + pkg/driver/distro/generic.go | 7 ++++--- pkg/driver/distro/minikube.go | 3 ++- pkg/driver/distro/talos.go | 1 + pkg/driver/distro/ubuntu.go | 3 ++- pkg/driver/kernel/kernel.go | 4 +++- pkg/driver/type/type.go | 2 ++ 15 files changed, 39 insertions(+), 17 deletions(-) diff --git a/cmd/driver/driver_linux.go b/cmd/driver/driver_linux.go index 845bb259..91c1de52 100644 --- a/cmd/driver/driver_linux.go +++ b/cmd/driver/driver_linux.go @@ -4,7 +4,8 @@ package driver import ( "context" - "github.com/falcosecurity/falcoctl/cmd/driver/prepare" + + driverprepare "github.com/falcosecurity/falcoctl/cmd/driver/prepare" driverselect "github.com/falcosecurity/falcoctl/cmd/driver/select" "github.com/falcosecurity/falcoctl/internal/config" commonoptions "github.com/falcosecurity/falcoctl/pkg/options" diff --git a/cmd/driver/prepare/prepare.go b/cmd/driver/prepare/prepare.go index af19b56a..db45cea5 100644 --- a/cmd/driver/prepare/prepare.go +++ b/cmd/driver/prepare/prepare.go @@ -3,6 +3,7 @@ package driverprepare import ( "errors" "fmt" + "github.com/falcosecurity/falcoctl/internal/config" driverdistro "github.com/falcosecurity/falcoctl/pkg/driver/distro" driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" diff --git a/cmd/driver/select/select.go b/cmd/driver/select/select.go index f4be7350..f057d238 100644 --- a/cmd/driver/select/select.go +++ b/cmd/driver/select/select.go @@ -2,6 +2,7 @@ package driverselect import ( "fmt" + "github.com/falcosecurity/falcoctl/internal/config" driverdistro "github.com/falcosecurity/falcoctl/pkg/driver/distro" driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" diff --git a/internal/config/config.go b/internal/config/config.go index 3d05ea4b..fa0238d0 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -526,6 +526,7 @@ func Driverer() (Driver, error) { }, nil } +// SelectDriver stores a driver as selected in config file. func SelectDriver(driverType, configFile string) error { if err := UpdateConfigFile(DriverSelectedKey, driverType, configFile); err != nil { return fmt.Errorf("unable to update selected driver in the config file %q: %w", configFile, err) diff --git a/pkg/driver/distro/amzn.go b/pkg/driver/distro/amzn.go index 2bc29e68..dfe1e889 100644 --- a/pkg/driver/distro/amzn.go +++ b/pkg/driver/distro/amzn.go @@ -2,6 +2,7 @@ package driverdistro import ( "fmt" + "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" ) @@ -14,23 +15,23 @@ type amzn struct { *generic } -func (a *amzn) init(printer *output.Printer, id string, cfg *ini.File) error { +func (a *amzn) init(printer *output.Printer, _ string, cfg *ini.File) error { idKey := cfg.Section("").Key("VERSION_ID") if idKey == nil { // OS-release without `VERSION_ID` (can it happen?) return fmt.Errorf("no VERSION_ID present for amzn") } // overwrite id - newId := "" + newID := "" switch idKey.String() { case "2": - newId = "amazonlinux2" + newID = "amazonlinux2" case "2022": - newId = "amazonlinux2022" + newID = "amazonlinux2022" case "2023": - newId = "amazonlinux2023" + newID = "amazonlinux2023" default: - newId = "amazonlinux" + newID = "amazonlinux" } - return a.generic.init(printer, newId, cfg) + return a.generic.init(printer, newID, cfg) } diff --git a/pkg/driver/distro/bottlerocket.go b/pkg/driver/distro/bottlerocket.go index 7c969772..946fb2db 100644 --- a/pkg/driver/distro/bottlerocket.go +++ b/pkg/driver/distro/bottlerocket.go @@ -2,10 +2,11 @@ package driverdistro import ( "fmt" + "strings" + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" - "strings" ) func init() { diff --git a/pkg/driver/distro/debian.go b/pkg/driver/distro/debian.go index 7df04f5f..72b1d380 100644 --- a/pkg/driver/distro/debian.go +++ b/pkg/driver/distro/debian.go @@ -2,9 +2,10 @@ package driverdistro import ( "fmt" - driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "os" "regexp" + + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" ) func init() { diff --git a/pkg/driver/distro/distro.go b/pkg/driver/distro/distro.go index 55d37039..9fdf51cd 100644 --- a/pkg/driver/distro/distro.go +++ b/pkg/driver/distro/distro.go @@ -2,18 +2,22 @@ package driverdistro import ( "fmt" + "strings" + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" drivertype "github.com/falcosecurity/falcoctl/pkg/driver/type" "github.com/falcosecurity/falcoctl/pkg/options" "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" - "strings" ) var distros = map[string]Distro{} +// ErrUnsupported is the error returned when the target distro is not supported. var ErrUnsupported = fmt.Errorf("failed to determine distro") +// Distro is the common interface used by distro-specific implementations. +// Most of the distro-specific only partially override the default `generic` implementation. type Distro interface { init(printer *output.Printer, id string, cfg *ini.File) error // private GetTargetID(i driverkernel.Info) string @@ -27,6 +31,8 @@ type checker interface { check(hostRoot string) bool // private } +// DiscoverDistro tries to fetch the correct Distro by looking at /etc/os-release or +// by cycling on all supported distros and checking them one by one. func DiscoverDistro(printer *output.Printer, hostRoot string) (Distro, error) { distro, err := getOSReleaseDistro(printer, hostRoot) if err == nil { diff --git a/pkg/driver/distro/flatcar.go b/pkg/driver/distro/flatcar.go index 5217cb84..394cf337 100644 --- a/pkg/driver/distro/flatcar.go +++ b/pkg/driver/distro/flatcar.go @@ -2,6 +2,7 @@ package driverdistro import ( "fmt" + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" diff --git a/pkg/driver/distro/generic.go b/pkg/driver/distro/generic.go index b0db479d..e20a0fde 100644 --- a/pkg/driver/distro/generic.go +++ b/pkg/driver/distro/generic.go @@ -2,15 +2,16 @@ package driverdistro import ( "fmt" + "io" + "net/http" + "os" + "github.com/docker/docker/pkg/homedir" driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" drivertype "github.com/falcosecurity/falcoctl/pkg/driver/type" "github.com/falcosecurity/falcoctl/pkg/options" "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" - "io" - "net/http" - "os" ) type generic struct { diff --git a/pkg/driver/distro/minikube.go b/pkg/driver/distro/minikube.go index f4266ad3..1bb305c3 100644 --- a/pkg/driver/distro/minikube.go +++ b/pkg/driver/distro/minikube.go @@ -2,10 +2,11 @@ package driverdistro import ( "fmt" - driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "io" "os" "regexp" + + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" ) func init() { diff --git a/pkg/driver/distro/talos.go b/pkg/driver/distro/talos.go index ab6db5b6..279281e1 100644 --- a/pkg/driver/distro/talos.go +++ b/pkg/driver/distro/talos.go @@ -2,6 +2,7 @@ package driverdistro import ( "fmt" + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "github.com/falcosecurity/falcoctl/pkg/output" "gopkg.in/ini.v1" diff --git a/pkg/driver/distro/ubuntu.go b/pkg/driver/distro/ubuntu.go index 90cc7e1e..ac0753be 100644 --- a/pkg/driver/distro/ubuntu.go +++ b/pkg/driver/distro/ubuntu.go @@ -1,9 +1,10 @@ package driverdistro import ( - driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" "regexp" "strings" + + driverkernel "github.com/falcosecurity/falcoctl/pkg/driver/kernel" ) func init() { diff --git a/pkg/driver/kernel/kernel.go b/pkg/driver/kernel/kernel.go index ca3a43e2..e9375bc1 100644 --- a/pkg/driver/kernel/kernel.go +++ b/pkg/driver/kernel/kernel.go @@ -2,10 +2,12 @@ package driverkernel import ( "bytes" - "golang.org/x/sys/unix" "strings" + + "golang.org/x/sys/unix" ) +// Info is the struct that holds all the kernel related information that are needed. type Info struct { Architecture string KernelRelease string diff --git a/pkg/driver/type/type.go b/pkg/driver/type/type.go index 2d142694..f63cc072 100644 --- a/pkg/driver/type/type.go +++ b/pkg/driver/type/type.go @@ -4,6 +4,7 @@ import "fmt" var driverTypes = map[string]DriverType{} +// DriverType is the interface that wraps driver types. type DriverType interface { String() string Prepare() error @@ -11,6 +12,7 @@ type DriverType interface { HasArtifacts() bool } +// Parse parses a driver type string and returns the corresponding DriverType object or an error. func Parse(driverType string) (DriverType, error) { if dType, ok := driverTypes[driverType]; ok { return dType, nil