package emulator import ( "context" "fmt" "os" "time" "edge-infra.dev/pkg/lib/fog" "edge-infra.dev/pkg/sds/lib/colors" ) const ( envSessionTimeout = "RCLI_SESSION_TIMEOUT" defaultSessionTimeout = 300 * time.Second ) type Config struct { dir string sessionTimeout time.Duration } func NewConfig(ctx context.Context, dir string) Config { log := fog.FromContext(ctx) sessionTimeoutStr, ok := os.LookupEnv(envSessionTimeout) if !ok { sessionTimeoutStr = defaultSessionTimeout.String() } sessionTimeout, err := time.ParseDuration(sessionTimeoutStr) if err != nil { log.Error( err, "Unable to parse configured timeout environment variable. Using default value", "envvar", envSessionTimeout, "timeout", defaultSessionTimeout.String(), ) fmt.Println(colors.Text( fmt.Sprintf("Unable to parse configured timeout environment variable. Using default value of %s", defaultSessionTimeout.String()), colors.FgRed, )) sessionTimeout = defaultSessionTimeout } return Config{ dir: dir, sessionTimeout: sessionTimeout, } }