reorganize env loading logic

This commit is contained in:
Khinshan Khan
2025-03-28 17:44:11 -04:00
parent ba5c7bba2b
commit 464a753f71
+21 -19
View File
@@ -32,6 +32,11 @@ var (
conspiracyIndex int conspiracyIndex int
) )
var (
botToken string
channelID string
)
var ( var (
SendMessageIntervalMin int SendMessageIntervalMin int
SendMessageIntervalMax int SendMessageIntervalMax int
@@ -41,9 +46,21 @@ var (
) )
func loadEnvConfig() error { func loadEnvConfig() error {
if err := godotenv.Load(); err != nil {
log.Println("[!] No .env file found, using system environment variables.")
}
botToken = os.Getenv("DISCORD_BOT_TOKEN")
if botToken == "" {
return fmt.Errorf("Missing DISCORD_BOT_TOKEN")
}
channelID = os.Getenv("DISCORD_CHANNEL_ID")
if botToken == "" {
return fmt.Errorf("Missing DISCORD_CHANNEL_ID")
}
var err error var err error
// Message intervals
SendMessageIntervalMin, err = strconv.Atoi(os.Getenv("SEND_MESSAGE_INTERVAL_MIN")) SendMessageIntervalMin, err = strconv.Atoi(os.Getenv("SEND_MESSAGE_INTERVAL_MIN"))
if err != nil { if err != nil {
return fmt.Errorf("SEND_MESSAGE_INTERVAL_MIN: %w", err) return fmt.Errorf("SEND_MESSAGE_INTERVAL_MIN: %w", err)
@@ -53,9 +70,7 @@ func loadEnvConfig() error {
return fmt.Errorf("SEND_MESSAGE_INTERVAL_MAX: %w", err) return fmt.Errorf("SEND_MESSAGE_INTERVAL_MAX: %w", err)
} }
// Duration unit switch os.Getenv("SEND_MESSAGE_UNIT") {
unit := os.Getenv("SEND_MESSAGE_UNIT")
switch unit {
case "second", "seconds": case "second", "seconds":
SendMessageUnit = time.Second SendMessageUnit = time.Second
case "minute", "minutes": case "minute", "minutes":
@@ -63,16 +78,14 @@ func loadEnvConfig() error {
case "millisecond", "milliseconds": case "millisecond", "milliseconds":
SendMessageUnit = time.Millisecond SendMessageUnit = time.Millisecond
default: default:
return fmt.Errorf("unsupported SEND_MESSAGE_UNIT: %s", unit) return fmt.Errorf("unsupported SEND_MESSAGE_UNIT: %s", os.Getenv("SEND_MESSAGE_UNIT"))
} }
// Conspiracy delete delay
DeleteConspiracyDelay, err = time.ParseDuration(os.Getenv("DELETE_CONSPIRACY_DELAY")) DeleteConspiracyDelay, err = time.ParseDuration(os.Getenv("DELETE_CONSPIRACY_DELAY"))
if err != nil { if err != nil {
return fmt.Errorf("DELETE_CONSPIRACY_DELAY: %w", err) return fmt.Errorf("DELETE_CONSPIRACY_DELAY: %w", err)
} }
// Conspiracy probability
ConspiracyProbability, err = strconv.ParseFloat(os.Getenv("CONSPIRACY_PROBABILITY"), 64) ConspiracyProbability, err = strconv.ParseFloat(os.Getenv("CONSPIRACY_PROBABILITY"), 64)
if err != nil { if err != nil {
return fmt.Errorf("CONSPIRACY_PROBABILITY: %w", err) return fmt.Errorf("CONSPIRACY_PROBABILITY: %w", err)
@@ -82,19 +95,8 @@ func loadEnvConfig() error {
} }
func main() { func main() {
// Load environment variables
if err := godotenv.Load(); err != nil {
log.Println("[!] No .env file found, using system environment variables.")
}
// Retrieve token and channel ID
botToken, channelID := os.Getenv("DISCORD_BOT_TOKEN"), os.Getenv("DISCORD_CHANNEL_ID")
if botToken == "" || channelID == "" {
log.Fatal("[x] Missing DISCORD_BOT_TOKEN or DISCORD_CHANNEL_ID in .env")
}
if err := loadEnvConfig(); err != nil { if err := loadEnvConfig(); err != nil {
log.Fatalf("[x] Error loading env config: %v", err) log.Fatalf("[x] Failed to load configuration: %v", err)
} }
// Load messages at build time // Load messages at build time