package config import ( //"CatsOfMastodonBotGo/internal/auth" //"CatsOfMastodonBotGo/internal/services" "log" "os" ) type config struct { AdminPassword string Instance string Tag string JwtSecret string JwtIssuer string JwtAudience string } var Config *config func Load() *config { // Get mastodon instance instance := os.Getenv("CAOM_INSTANCE") if instance == "" { instance = "https://mstdn.party" } // Get mastodon tag tag := os.Getenv("CAOM_TAG") if tag == "" { tag = "catsofmastodon" } // Get admin password (Its a single user/admin app so its just fine) adminPassword := os.Getenv("CAOM_ADMIN_PASSWORD") if adminPassword == "" { log.Println("No admin password provided, using default password 'catsaregood'") adminPassword = "catsaregood" } // Jwt params secret := os.Getenv("CAOM_JWT_SECRET") if secret == "" { log.Fatal("No jwt secret provided") } issuer := os.Getenv("CAOM_JWT_ISSUER") if issuer == "" { log.Println("No jwt issuer provided, using default issuer 'CatsOfMastodonBotGo'") issuer = "CatsOfMastodonBotGo" } audience := os.Getenv("CAOM_JWT_AUDIENCE") if audience == "" { log.Println("No jwt audience provided, using default audience 'CatsOfMastodonBotGo'") audience = "CatsOfMastodonBotGo" } // Inititlize AppContext var appContext = &config{ AdminPassword: adminPassword, Instance: instance, Tag: tag, JwtSecret: secret, JwtIssuer: issuer, JwtAudience: audience, } return appContext } func Init() { Config = Load() }