/
cloudservices
/
auth-service
Обзор
Документация
Войти
/
cloudservices
/
auth-service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
pkg/dotenv/load.go
45 строк
908 B
Ivan Shibkikh
xhttp pkg
27 июл 2026, 21:44
27 июл 2026, 21:44
0aa64cd
Код
Авторство
О чём код?
package dotenv import ( "bufio" "os" "path/filepath" "strings" ) func Load(src string) error { path, err := filepath.Abs(src) if err != nil { return err } f, err := os.Open(path) if err != nil { return err } defer f.Close() scanner := bufio.NewScanner(f) for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) // Skip empty lines and comments. if line == "" || strings.HasPrefix(line, "#") { continue } idx := strings.IndexByte(line, '=') if idx < 0 { continue } key := strings.TrimSpace(line[:idx]) val := strings.TrimSpace(line[idx+1:]) // Remove surrounding quotes if present. if len(val) >= 2 && (val[0] == '"' || val[0] == '\'') && val[0] == val[len(val)-1] { val = val[1 : len(val)-1] } // Only set if not already in the OS environment. if _, exists := os.LookupEnv(key); !exists { os.Setenv(key, val) } } return scanner.Err() }