...
1 package emulator
2
3 import (
4 "context"
5 "fmt"
6 "os"
7 "time"
8
9 "edge-infra.dev/pkg/lib/fog"
10 "edge-infra.dev/pkg/sds/lib/colors"
11 )
12
13 const (
14 envSessionTimeout = "RCLI_SESSION_TIMEOUT"
15
16 defaultSessionTimeout = 300 * time.Second
17 )
18
19 type Config struct {
20 dir string
21 sessionTimeout time.Duration
22 }
23
24 func NewConfig(ctx context.Context, dir string) Config {
25 log := fog.FromContext(ctx)
26
27 sessionTimeoutStr, ok := os.LookupEnv(envSessionTimeout)
28 if !ok {
29 sessionTimeoutStr = defaultSessionTimeout.String()
30 }
31
32 sessionTimeout, err := time.ParseDuration(sessionTimeoutStr)
33 if err != nil {
34 log.Error(
35 err,
36 "Unable to parse configured timeout environment variable. Using default value",
37 "envvar", envSessionTimeout,
38 "timeout", defaultSessionTimeout.String(),
39 )
40 fmt.Println(colors.Text(
41 fmt.Sprintf("Unable to parse configured timeout environment variable. Using default value of %s", defaultSessionTimeout.String()),
42 colors.FgRed,
43 ))
44
45 sessionTimeout = defaultSessionTimeout
46 }
47
48 return Config{
49 dir: dir,
50 sessionTimeout: sessionTimeout,
51 }
52 }
53
View as plain text