Add 'environment' package
This commit adds a new environment package that manages all calls to the underlying operating system.
This commit is contained in:
parent
822c70cd69
commit
f19619ef9f
60 changed files with 539 additions and 308 deletions
|
|
@ -4,11 +4,12 @@ import (
|
|||
"reflect"
|
||||
"strings"
|
||||
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/environment"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Parse parses the provided value with the parser.
|
||||
func Parse(name, value string, vField reflect.Value) error {
|
||||
func Parse(env environment.Environment, name, value string, vField reflect.Value) error {
|
||||
|
||||
// use the validator
|
||||
parser, ok := knownParsers[strings.ToLower(name)]
|
||||
|
|
@ -17,7 +18,7 @@ func Parse(name, value string, vField reflect.Value) error {
|
|||
}
|
||||
|
||||
// get the parsed value
|
||||
checked, err := parser(value)
|
||||
checked, err := parser(env, value)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "parser %s returned error", name)
|
||||
}
|
||||
|
|
@ -53,8 +54,8 @@ var knownParsers map[string]Parser[any] = map[string]Parser[any]{
|
|||
}
|
||||
|
||||
func asGenericParser[T any](parser Parser[T]) Parser[any] {
|
||||
return func(s string) (value any, err error) {
|
||||
value, err = parser(s)
|
||||
return func(env environment.Environment, s string) (value any, err error) {
|
||||
value, err = parser(env, s)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue