41 lines
752 B
Go
41 lines
752 B
Go
package main
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
|
|
"git.dubyatp.xyz/dubyatp/scannerbot/server/api"
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
var REQUIRED_ENVS = [...]string{
|
|
"DATABASE_URL", "JWT_SECRET",
|
|
}
|
|
|
|
func checkEnvVars(keys []string) (bool, []string) {
|
|
var missing []string
|
|
for _, key := range keys {
|
|
if _, ok := os.LookupEnv(key); !ok {
|
|
missing = append(missing, key)
|
|
}
|
|
}
|
|
return len(missing) == 0, missing
|
|
}
|
|
|
|
func main() {
|
|
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
slog.Debug("No .env file loaded, will try OS environment variables")
|
|
}
|
|
|
|
exists, missingVars := checkEnvVars(REQUIRED_ENVS[:])
|
|
if !exists {
|
|
slog.Error("Missing environment variables", "missing", missingVars)
|
|
os.Exit(1)
|
|
}
|
|
|
|
slog.Info("Starting the API server...")
|
|
api.Start()
|
|
}
|