...

Source file src/edge-infra.dev/pkg/sds/emergencyaccess/emulator/config.go

Documentation: edge-infra.dev/pkg/sds/emergencyaccess/emulator

     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