/* # Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. */ package config import ( "os" "strings" ) const ( debugFilePathEnvvarName = "NVIDIA_CONTAINER_RUNTIME_DEBUG" runtimePathEnvvarName = "NVIDIA_CONTAINER_RUNTIME_PATH" rootEnvvarName = "NVIDIA_CONTAINER_RUNTIME_ROOT" logLevelEnvvarName = "NVIDIA_CONTAINER_RUNTIME_LOG_LEVEL" ) type envConfig struct{} func newConfigFromEnvironment() configUpdater { c := envConfig{} return &c } func (c envConfig) Update(cfg *Config) error { debugFilePathEnvvar, exists := os.LookupEnv(debugFilePathEnvvarName) if exists && strings.TrimSpace(debugFilePathEnvvar) != "" { cfg.DebugFilePath = debugFilePathEnvvar } runtimePathEnvvar, exists := os.LookupEnv(runtimePathEnvvarName) if exists && strings.TrimSpace(runtimePathEnvvar) != "" { cfg.RuntimePath = runtimePathEnvvar } rootEnvvar, exists := os.LookupEnv(rootEnvvarName) if exists && strings.TrimSpace(rootEnvvar) != "" { cfg.Root = rootEnvvar } logLevelEnvvar, exists := os.LookupEnv(logLevelEnvvarName) if exists && strings.TrimSpace(logLevelEnvvar) != "" { cfg.LogLevel = logLevelEnvvar } return nil }