Centralize code-server request detection
This commit is contained in:
parent
08aba389e4
commit
c837ec8807
@ -293,7 +293,7 @@ func ensureProvisioned(cfg *state.Config) error {
|
||||
}
|
||||
|
||||
func ensureDevCodeServer(cfg *state.Config) error {
|
||||
if cfg == nil || !devCodeServerRequested(*cfg) {
|
||||
if cfg == nil || !codeserver.Requested(*cfg) {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -316,18 +316,6 @@ func ensureDevCodeServer(cfg *state.Config) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func devCodeServerRequested(cfg state.Config) bool {
|
||||
if cfg.EnableCodeServer {
|
||||
return true
|
||||
}
|
||||
for _, addon := range cfg.Addons {
|
||||
if strings.EqualFold(addon, "codeserver") {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
--------------------------------------------------------------------------
|
||||
/config — the REAL provisioning trigger (async)
|
||||
|
||||
19
internal/provision/addons/codeserver/requested.go
Normal file
19
internal/provision/addons/codeserver/requested.go
Normal file
@ -0,0 +1,19 @@
|
||||
package codeserver
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"zlh-agent/internal/state"
|
||||
)
|
||||
|
||||
func Requested(cfg state.Config) bool {
|
||||
if cfg.EnableCodeServer {
|
||||
return true
|
||||
}
|
||||
for _, addon := range cfg.Addons {
|
||||
if strings.EqualFold(addon, "codeserver") {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
39
internal/provision/addons/codeserver/requested_test.go
Normal file
39
internal/provision/addons/codeserver/requested_test.go
Normal file
@ -0,0 +1,39 @@
|
||||
package codeserver
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"zlh-agent/internal/state"
|
||||
)
|
||||
|
||||
func TestRequested(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
cfg state.Config
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
name: "enable flag",
|
||||
cfg: state.Config{EnableCodeServer: true},
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "addon case insensitive",
|
||||
cfg: state.Config{Addons: []string{"CodeServer"}},
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "not requested",
|
||||
cfg: state.Config{Addons: []string{"other"}},
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := Requested(tt.cfg); got != tt.want {
|
||||
t.Fatalf("Requested() = %t, want %t", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"zlh-agent/internal/provision/addons"
|
||||
"zlh-agent/internal/provision/addons/codeserver"
|
||||
"zlh-agent/internal/provision/devcontainer"
|
||||
"zlh-agent/internal/provision/minecraft"
|
||||
"zlh-agent/internal/provision/steam"
|
||||
@ -151,7 +152,7 @@ func ProvisionAll(cfg state.Config) error {
|
||||
/* ---------------------------------------------------------
|
||||
ADDONS (OPTIONAL, ROLE-AGNOSTIC)
|
||||
--------------------------------------------------------- */
|
||||
if strings.EqualFold(cfg.ContainerType, "dev") && codeServerRequested(cfg) {
|
||||
if strings.EqualFold(cfg.ContainerType, "dev") && codeserver.Requested(cfg) {
|
||||
seen := false
|
||||
for _, addon := range cfg.Addons {
|
||||
if strings.EqualFold(addon, "codeserver") {
|
||||
@ -173,18 +174,6 @@ func ProvisionAll(cfg state.Config) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func codeServerRequested(cfg state.Config) bool {
|
||||
if cfg.EnableCodeServer {
|
||||
return true
|
||||
}
|
||||
for _, addon := range cfg.Addons {
|
||||
if strings.EqualFold(addon, "codeserver") {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func normalizeMinecraftConfig(cfg *state.Config) {
|
||||
if cfg == nil {
|
||||
return
|
||||
|
||||
Loading…
Reference in New Issue
Block a user