From 4232861d903d893774b3710ddb1d2b8c77c4dc48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Thu, 29 May 2025 11:51:31 +0200 Subject: [PATCH] use slices.Contains. --- internal/pull/manager.go | 4 ++-- internal/room/manager.go | 7 +++---- internal/types/room_api_v2.go | 6 +++--- internal/types/room_api_v3.go | 6 +++--- internal/utils/array.go | 14 -------------- 5 files changed, 11 insertions(+), 26 deletions(-) delete mode 100644 internal/utils/array.go diff --git a/internal/pull/manager.go b/internal/pull/manager.go index b210043..aabfbd0 100644 --- a/internal/pull/manager.go +++ b/internal/pull/manager.go @@ -6,6 +6,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "slices" "sync" "time" @@ -16,7 +17,6 @@ import ( "github.com/rs/zerolog/log" "github.com/m1k1o/neko-rooms/internal/types" - "github.com/m1k1o/neko-rooms/internal/utils" ) type PullManagerCtx struct { @@ -75,7 +75,7 @@ func (manager *PullManagerCtx) setDone() { } func (manager *PullManagerCtx) Start(request types.PullStart) error { - if in, _ := utils.ArrayIn(request.NekoImage, manager.images); !in { + if !slices.Contains(manager.images, request.NekoImage) { return fmt.Errorf("unknown neko image") } diff --git a/internal/room/manager.go b/internal/room/manager.go index cb37a2d..d46e565 100644 --- a/internal/room/manager.go +++ b/internal/room/manager.go @@ -10,6 +10,7 @@ import ( "os" "path" "path/filepath" + "slices" "strconv" "strings" "time" @@ -246,12 +247,10 @@ func (manager *RoomManagerCtx) Create(ctx context.Context, settings types.RoomSe return "", fmt.Errorf("invalid container name, must match %s", dockerNames.RestrictedNameChars) } - if in, _ := utils.ArrayIn(settings.NekoImage, manager.config.NekoImages); !in { + if !slices.Contains(manager.config.NekoImages, settings.NekoImage) { return "", fmt.Errorf("invalid neko image") } - isPrivilegedImage, _ := utils.ArrayIn(settings.NekoImage, manager.config.NekoPrivilegedImages) - // if api version is not set, try to detect it if settings.ApiVersion == 0 { inspect, _, err := manager.client.ImageInspectWithRaw(ctx, settings.NekoImage) @@ -669,7 +668,7 @@ func (manager *RoomManagerCtx) Create(ctx context.Context, settings types.RoomSe // DNS DNS: settings.DNS, // Privileged - Privileged: isPrivilegedImage, + Privileged: slices.Contains(manager.config.NekoPrivilegedImages, settings.NekoImage), } networkingConfig := &network.NetworkingConfig{ diff --git a/internal/types/room_api_v2.go b/internal/types/room_api_v2.go index ed452ba..50a0685 100644 --- a/internal/types/room_api_v2.go +++ b/internal/types/room_api_v2.go @@ -2,11 +2,11 @@ package types import ( "fmt" + "slices" "strconv" "strings" "github.com/m1k1o/neko-rooms/internal/config" - "github.com/m1k1o/neko-rooms/internal/utils" ) // @@ -98,7 +98,7 @@ func (settings *RoomSettings) toEnvV2(config *config.Room, ports PortSettings) [ } for key, val := range settings.Envs { - if in, _ := utils.ArrayIn(key, blacklistedEnvsV2); !in { + if !slices.Contains(blacklistedEnvsV2, key) { env = append(env, fmt.Sprintf("%s=%s", key, val)) } } @@ -148,7 +148,7 @@ func (settings *RoomSettings) fromEnvV2(envs []string) error { case "NEKO_AUDIO": settings.AudioPipeline = val default: - if in, _ := utils.ArrayIn(key, blacklistedEnvsV2); !in { + if !slices.Contains(blacklistedEnvsV2, key) { settings.Envs[key] = val } } diff --git a/internal/types/room_api_v3.go b/internal/types/room_api_v3.go index 1bdaf2e..baebc53 100644 --- a/internal/types/room_api_v3.go +++ b/internal/types/room_api_v3.go @@ -2,11 +2,11 @@ package types import ( "fmt" + "slices" "strconv" "strings" "github.com/m1k1o/neko-rooms/internal/config" - "github.com/m1k1o/neko-rooms/internal/utils" ) // @@ -107,7 +107,7 @@ func (settings *RoomSettings) toEnvV3(config *config.Room, ports PortSettings) [ } for key, val := range settings.Envs { - if in, _ := utils.ArrayIn(key, blacklistedEnvsV3); !in { + if !slices.Contains(blacklistedEnvsV3, key) { env = append(env, fmt.Sprintf("%s=%s", key, val)) } } @@ -159,7 +159,7 @@ func (settings *RoomSettings) fromEnvV3(envs []string) error { case "NEKO_CAPTURE_AUDIO_PIPELINE": settings.AudioPipeline = val default: - if in, _ := utils.ArrayIn(key, blacklistedEnvsV3); !in { + if !slices.Contains(blacklistedEnvsV3, key) { settings.Envs[key] = val } } diff --git a/internal/utils/array.go b/internal/utils/array.go deleted file mode 100644 index a84853b..0000000 --- a/internal/utils/array.go +++ /dev/null @@ -1,14 +0,0 @@ -package utils - -func ArrayIn[T comparable](val T, array []T) (exists bool, index int) { - exists, index = false, -1 - - for i, a := range array { - if a == val { - exists, index = true, i - return - } - } - - return -}