-
Notifications
You must be signed in to change notification settings - Fork 2
/
main.go
70 lines (56 loc) · 1.68 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package main
import (
"log"
"lbryio/wallet-sync-server/auth"
"lbryio/wallet-sync-server/env"
"lbryio/wallet-sync-server/mail"
"lbryio/wallet-sync-server/server"
"lbryio/wallet-sync-server/store"
)
func storeInit() (s store.Store) {
s = store.Store{}
s.Init("sql.db")
err := s.Migrate()
if err != nil {
log.Fatalf("DB setup failure: %+v", err)
}
return
}
// Output information about the email verification mode so the user can confirm
// what they set. Also trigger an error on startup if there's a configuration
// problem.
func logEmailVerificationConfigs(e *env.Env) (err error) {
verificationMode, err := env.GetAccountVerificationMode(e)
if err != nil {
return
}
accountWhitelist, err := env.GetAccountWhitelist(e, verificationMode)
if err != nil {
return
}
// just to report config errors to the user on startup
sendingDomain, serverDomain, _, _, err := env.GetMailgunConfigs(e, verificationMode)
if err != nil {
return
}
if verificationMode == env.AccountVerificationModeWhitelist {
log.Printf("Account verification mode: %s - Whitelist has %d email(s).\n", verificationMode, len(accountWhitelist))
} else {
log.Printf("Account verification mode: %s", verificationMode)
}
if verificationMode == env.AccountVerificationModeEmailVerify {
log.Printf("Mailgun domains: %s for sending addresses, %s for links in the email", sendingDomain, serverDomain)
}
return
}
func main() {
e := env.Env{}
if err := logEmailVerificationConfigs(&e); err != nil {
log.Fatal(err.Error())
}
store := storeInit()
// The port that the sync server serves from.
internalPort := 8090
srv := server.Init(&auth.Auth{}, &store, &e, &mail.Mail{&e}, internalPort)
srv.Serve()
}