c817236aa4
Close #21. Refactor environment variables to configuration file (config.yaml) and registration file (.runner). The old environment variables are still supported, but warning logs will be printed. Like: ```text $ GITEA_DEBUG=true ./act_runner -c config.yaml daemon INFO[0000] Starting runner daemon WARN[0000] env GITEA_DEBUG has been ignored because config file is used $ GITEA_DEBUG=true ./act_runner daemon INFO[0000] Starting runner daemon WARN[0000] env GITEA_DEBUG will be deprecated, please use config file instead ``` Reviewed-on: https://gitea.com/gitea/act_runner/pulls/90 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// Deprecated: could be removed in the future. TODO: remove it when Gitea 1.20.0 is released.
|
|
// Be compatible with old envs.
|
|
func compatibleWithOldEnvs(fileUsed bool, cfg *Config) {
|
|
handleEnv := func(key string) (string, bool) {
|
|
if v, ok := os.LookupEnv(key); ok {
|
|
if fileUsed {
|
|
log.Warnf("env %s has been ignored because config file is used", key)
|
|
return "", false
|
|
}
|
|
log.Warnf("env %s will be deprecated, please use config file instead", key)
|
|
return v, true
|
|
}
|
|
return "", false
|
|
}
|
|
|
|
if v, ok := handleEnv("GITEA_DEBUG"); ok {
|
|
if b, _ := strconv.ParseBool(v); b {
|
|
cfg.Log.Level = "debug"
|
|
}
|
|
}
|
|
if v, ok := handleEnv("GITEA_TRACE"); ok {
|
|
if b, _ := strconv.ParseBool(v); b {
|
|
cfg.Log.Level = "trace"
|
|
}
|
|
}
|
|
if v, ok := handleEnv("GITEA_RUNNER_CAPACITY"); ok {
|
|
if i, _ := strconv.Atoi(v); i > 0 {
|
|
cfg.Runner.Capacity = i
|
|
}
|
|
}
|
|
if v, ok := handleEnv("GITEA_RUNNER_FILE"); ok {
|
|
cfg.Runner.File = v
|
|
}
|
|
if v, ok := handleEnv("GITEA_RUNNER_ENVIRON"); ok {
|
|
splits := strings.Split(v, ",")
|
|
if cfg.Runner.Envs == nil {
|
|
cfg.Runner.Envs = map[string]string{}
|
|
}
|
|
for _, split := range splits {
|
|
kv := strings.SplitN(split, ":", 2)
|
|
if len(kv) == 2 && kv[0] != "" {
|
|
cfg.Runner.Envs[kv[0]] = kv[1]
|
|
}
|
|
}
|
|
}
|
|
if v, ok := handleEnv("GITEA_RUNNER_ENV_FILE"); ok {
|
|
cfg.Runner.EnvFile = v
|
|
}
|
|
}
|