use slices.Contains.

This commit is contained in:
Miroslav Šedivý
2025-05-29 11:51:31 +02:00
parent 64eab2db4c
commit 4232861d90
5 changed files with 11 additions and 26 deletions
+2 -2
View File
@@ -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")
}
+3 -4
View File
@@ -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{
+3 -3
View File
@@ -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
}
}
+3 -3
View File
@@ -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
}
}
-14
View File
@@ -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
}