package config
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
)
|
|
|
|
const MirrorModePublic = "PUBLIC"
|
|
const MirrorModePrivateAndPublic = "PRIVATE_AND_PUBLIC"
|
|
|
|
type Config struct {
|
|
MirrorMode string
|
|
Gitea GiteaConfig
|
|
}
|
|
|
|
type GiteaConfig struct {
|
|
GiteaUrl string
|
|
GiteaToken string
|
|
}
|
|
|
|
func Read() (*Config, error) {
|
|
mirrorMode, err := readMirrorMode()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
gitea, err := readGiteaConfig()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &Config{
|
|
MirrorMode: mirrorMode,
|
|
Gitea: gitea,
|
|
}, nil
|
|
}
|
|
|
|
func readGiteaConfig() (GiteaConfig, error) {
|
|
url, a := os.LookupEnv("GITEA_URL")
|
|
if !a {
|
|
return GiteaConfig{}, errors.New("")
|
|
}
|
|
|
|
token, a := os.LookupEnv("GITEA_TOKEN")
|
|
if !a {
|
|
return GiteaConfig{}, errors.New("")
|
|
}
|
|
|
|
return GiteaConfig{
|
|
GiteaUrl: url,
|
|
GiteaToken: token,
|
|
}, nil
|
|
|
|
}
|
|
|
|
func readMirrorMode() (string, error) {
|
|
input, present := os.LookupEnv("MIRROR_MODE")
|
|
|
|
if !present {
|
|
return MirrorModePublic, nil
|
|
}
|
|
|
|
switch input {
|
|
case MirrorModePublic, MirrorModePrivateAndPublic:
|
|
return input, nil
|
|
default:
|
|
return "", errors.New("")
|
|
}
|
|
|
|
}
|