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 {
|
func ensureDevCodeServer(cfg *state.Config) error {
|
||||||
if cfg == nil || !devCodeServerRequested(*cfg) {
|
if cfg == nil || !codeserver.Requested(*cfg) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,18 +316,6 @@ func ensureDevCodeServer(cfg *state.Config) error {
|
|||||||
return nil
|
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)
|
/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"
|
"strings"
|
||||||
|
|
||||||
"zlh-agent/internal/provision/addons"
|
"zlh-agent/internal/provision/addons"
|
||||||
|
"zlh-agent/internal/provision/addons/codeserver"
|
||||||
"zlh-agent/internal/provision/devcontainer"
|
"zlh-agent/internal/provision/devcontainer"
|
||||||
"zlh-agent/internal/provision/minecraft"
|
"zlh-agent/internal/provision/minecraft"
|
||||||
"zlh-agent/internal/provision/steam"
|
"zlh-agent/internal/provision/steam"
|
||||||
@ -151,7 +152,7 @@ func ProvisionAll(cfg state.Config) error {
|
|||||||
/* ---------------------------------------------------------
|
/* ---------------------------------------------------------
|
||||||
ADDONS (OPTIONAL, ROLE-AGNOSTIC)
|
ADDONS (OPTIONAL, ROLE-AGNOSTIC)
|
||||||
--------------------------------------------------------- */
|
--------------------------------------------------------- */
|
||||||
if strings.EqualFold(cfg.ContainerType, "dev") && codeServerRequested(cfg) {
|
if strings.EqualFold(cfg.ContainerType, "dev") && codeserver.Requested(cfg) {
|
||||||
seen := false
|
seen := false
|
||||||
for _, addon := range cfg.Addons {
|
for _, addon := range cfg.Addons {
|
||||||
if strings.EqualFold(addon, "codeserver") {
|
if strings.EqualFold(addon, "codeserver") {
|
||||||
@ -173,18 +174,6 @@ func ProvisionAll(cfg state.Config) error {
|
|||||||
return nil
|
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) {
|
func normalizeMinecraftConfig(cfg *state.Config) {
|
||||||
if cfg == nil {
|
if cfg == nil {
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user