// If the value is empty after stripping brackets (i.e., "[]"), return empty array
val=strings.TrimSpace(val)
ifval=="" {
ifs.minLength==0 {
// Empty array "[]" is allowed when minLength is 0
return []int{}, nil
} else {
// Empty array not allowed, return default
returns.DefaultValue(), fmt.Errorf("Invalid value for environment variable %s. It cannot be empty. Using default value of %s", s.envVar, arrayToString(s.DefaultValue()))
}
}
// Split by comma and parse each element
parts:=strings.Split(val, ",")
result:=make([]int, 0, len(parts))
for_, part:=rangeparts {
trimmed:=strings.TrimSpace(part)
iftrimmed=="" {
// Skip empty parts (e.g., from trailing commas)
continue
}
v, err:=strconv.Atoi(trimmed)
iferr!=nil {
// Invalid format, return default
returns.DefaultValue(), fmt.Errorf("Unable to parse environment variable %s with value %s. Using default value of %s", s.envVar, originalVal, arrayToString(s.DefaultValue()))
}
// Validate individual value
ifv<s.minValue||v>s.maxValue {
// Out of bounds, return default
returns.DefaultValue(), fmt.Errorf("Element %d in environment variable %s with value %s is out of bounds. Min value %d. Max value %d. Using default value of %s", v, s.envVar, originalVal, s.minValue, s.maxValue, arrayToString(s.DefaultValue()))
returns.DefaultValue(), fmt.Errorf("Array length %d for environment variable %s is out of bounds. Min length %d. Max length %d. Using default value of %s", len(result), s.envVar, s.minLength, s.maxLength, arrayToString(s.DefaultValue()))
}
returnresult, nil
}
// RegisterIntegerArraySetting globally registers and returns a new integer array setting.