package main import ( "os/user" "runtime" "strconv" "git.milar.in/milarin/envvars/v2" ) var ( DownloadPath = envvars.String("DOWNLOAD_PATH", "") ThreadCount = envvars.Int("THREADS", runtime.NumCPU()) Uid = envvars.Object("UID", 1000, func(s string) (int, error) { if uid, err := strconv.Atoi(s); err == nil { return uid, nil } usr, err := user.Lookup(s) if err != nil { return 0, err } return strconv.Atoi(usr.Uid) }) Gid = envvars.Object("GID", 1000, func(s string) (int, error) { if gid, err := strconv.Atoi(s); err == nil { return gid, nil } grp, err := user.LookupGroup(s) if err != nil { return 0, err } return strconv.Atoi(grp.Gid) }) )