-
Notifications
You must be signed in to change notification settings - Fork 2
/
config.go
133 lines (107 loc) · 2.81 KB
/
config.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package config
// Config is the root config structure
type Config struct {
LogLevel string `default:"debug"`
DefaultDomain string `default:"oakmail.io"`
API APIConfig
Filer FilerConfig
Mailer MailerConfig
Worker WorkerConfig
Database *Database `default:"sqlite"`
Postgres PostgresConfig
SQLite SQLiteConfig
Filesystem *Filesystem `default:"flat"`
Flat FlatConfig
Seaweed SeaweedConfig
Queue *Queue `default:"memory"`
NSQ NSQConfig
}
// APIConfig contains configuration data for the API module
type APIConfig struct {
Enabled bool `default:"false"`
Address string `default:"0.0.0.0:8080"`
}
// FilerConfig contains configuration data for the Filer module
type FilerConfig struct {
Enabled bool `default:"false"`
Address string `default:"0.0.0.0:8081"`
}
// MailerConfig contains configuration data for the mailer module
type MailerConfig struct {
Enabled bool `default:"false"`
Address string `default:"0.0.0.0:8025"`
}
// WorkerConfig contains configuration data for the worker module
type WorkerConfig struct {
Enabled bool `default:"false"`
}
// Database is a database type enum
type Database string
// String implements flag.Value
func (d *Database) String() string {
return string(*d)
}
// Set implements flag.Value
func (d *Database) Set(value string) error {
*d = Database(value)
return nil
}
// Available databases
const (
Postgres Database = "postgres"
SQLite Database = "sqlite"
)
// PostgresConfig contains all configuration data for a PostgreSQL connection
type PostgresConfig struct {
ConnectionString string
}
// SQLiteConfig contains all configuration data for SQLite adapter setup
type SQLiteConfig struct {
ConnectionString string `default:"./_runtime/database.db"`
}
// Filesystem is a filesystem type enum
type Filesystem string
// String implements flag.Value
func (f *Filesystem) String() string {
return string(*f)
}
// Set implements flag.Value
func (f *Filesystem) Set(value string) error {
*f = Filesystem(value)
return nil
}
// Available filesystems
const (
Flat Filesystem = "flat"
Seaweed Filesystem = "seaweed"
)
// FlatConfig contains all configuration data for the flat filesystem
type FlatConfig struct {
Path string `default:"./_runtime/files"`
}
// SeaweedConfig contains all configuration data for the SeaweedFS client
type SeaweedConfig struct {
MasterURL string
Collection string
}
// Queue is a queue type enum
type Queue string
// String implements flag.Value
func (q *Queue) String() string {
return string(*q)
}
// Set implements flag.Value
func (q *Queue) Set(value string) error {
*q = Queue(value)
return nil
}
// Available queues
const (
NSQ Queue = "nsq"
Memory Queue = "memory"
)
// NSQConfig contains all configuration data for the NSQ clients
type NSQConfig struct {
NSQdAddresses []string
LookupdAddresses []string
}