refactor: separate SMTP config from LDAP struct

The LDAP struct was mixing LDAP connection settings with unrelated mail
settings. Extract mail fields into a dedicated SMTPConfig struct with
its own global (mySMTP), keeping concerns cleanly separated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
nemunaire 2026-03-16 17:02:52 +07:00
commit 3e6b95bf40
3 changed files with 30 additions and 19 deletions

30
main.go
View file

@ -31,9 +31,12 @@ var dockerRegistrySecret string
var allowedAliasDomains []string
var myLDAP = LDAP{
Host: "localhost",
Port: 389,
BaseDN: "dc=example,dc=com",
Host: "localhost",
Port: 389,
BaseDN: "dc=example,dc=com",
}
var mySMTP = SMTPConfig{
MailPort: 587,
MailFrom: "noreply@example.com",
}
@ -115,8 +118,13 @@ func main() {
log.Fatal(err)
} else if cnt, err := io.ReadAll(fd); err != nil {
log.Fatal(err)
} else if err := json.Unmarshal(cnt, &myLDAP); err != nil {
log.Fatal(err)
} else {
if err := json.Unmarshal(cnt, &myLDAP); err != nil {
log.Fatal(err)
}
if err := json.Unmarshal(cnt, &mySMTP); err != nil {
log.Fatal(err)
}
}
}
@ -156,17 +164,17 @@ func main() {
}
if val, ok := os.LookupEnv("SMTP_HOST"); ok {
myLDAP.MailHost = val
mySMTP.MailHost = val
}
if val, ok := os.LookupEnv("SMTP_PORT"); ok {
if port, err := strconv.Atoi(val); err == nil {
myLDAP.MailPort = port
mySMTP.MailPort = port
} else {
log.Println("Invalid value for SMTP_PORT:", val)
}
}
if val, ok := os.LookupEnv("SMTP_USER"); ok {
myLDAP.MailUser = val
mySMTP.MailUser = val
}
if val, ok := os.LookupEnv("SMTP_PASSWORD_FILE"); ok {
if fd, err := os.Open(val); err != nil {
@ -176,13 +184,13 @@ func main() {
log.Fatal(err)
} else {
fd.Close()
myLDAP.MailPassword = string(cnt)
mySMTP.MailPassword = string(cnt)
}
} else if val, ok := os.LookupEnv("SMTP_PASSWORD"); ok {
myLDAP.MailPassword = val
mySMTP.MailPassword = val
}
if val, ok := os.LookupEnv("SMTP_FROM"); ok {
myLDAP.MailFrom = val
mySMTP.MailFrom = val
}
if val, ok := os.LookupEnv("PUBLIC_URL"); ok {
myPublicURL = val