mirror of
https://github.com/miniflux/v2.git
synced 2025-09-30 19:22:11 +00:00
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
|
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
|
||
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
package config // import "miniflux.app/v2/internal/config"
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"slices"
|
||
|
"strconv"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func validateChoices(rawValue string, choices []string) error {
|
||
|
if !slices.Contains(choices, rawValue) {
|
||
|
return fmt.Errorf("value must be one of: %v", strings.Join(choices, ", "))
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func validateListChoices(inputValues, choices []string) error {
|
||
|
for _, value := range inputValues {
|
||
|
if !slices.Contains(choices, value) {
|
||
|
return fmt.Errorf("value must be one of: %v", strings.Join(choices, ", "))
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func validateGreaterThan(rawValue string, min int) error {
|
||
|
intValue, err := strconv.Atoi(rawValue)
|
||
|
if err != nil {
|
||
|
return fmt.Errorf("value must be an integer")
|
||
|
}
|
||
|
if intValue > min {
|
||
|
return nil
|
||
|
}
|
||
|
return fmt.Errorf("value must be at least %d", min)
|
||
|
}
|
||
|
|
||
|
func validateGreaterOrEqualThan(rawValue string, min int) error {
|
||
|
intValue, err := strconv.Atoi(rawValue)
|
||
|
if err != nil {
|
||
|
return fmt.Errorf("value must be an integer")
|
||
|
}
|
||
|
if intValue >= min {
|
||
|
return nil
|
||
|
}
|
||
|
return fmt.Errorf("value must be greater or equal than %d", min)
|
||
|
}
|
||
|
|
||
|
func validateRange(rawValue string, min, max int) error {
|
||
|
intValue, err := strconv.Atoi(rawValue)
|
||
|
if err != nil {
|
||
|
return fmt.Errorf("value must be an integer")
|
||
|
}
|
||
|
if intValue < min || intValue > max {
|
||
|
return fmt.Errorf("value must be between %d and %d", min, max)
|
||
|
}
|
||
|
return nil
|
||
|
}
|