1
1
package main
2
2
3
- import "os"
3
+ import (
4
+ "os"
5
+ )
4
6
5
7
type Config struct {
6
- ImageDir string
7
- Secure string
8
- Password string
9
- Port string
10
- Title string
11
- Icon string
12
- Adderss string
13
- Dynamic string
14
- Linuxdo string
15
- LinuxdoClientId string
16
- LinuxdoClientSecret string
8
+ ImageDir string
9
+ Secure string
10
+ Password string
11
+ Port string
12
+ Title string
13
+ Icon string
14
+ Adderss string
15
+ Dynamic string
16
+ Linuxdo string
17
+ ClientId string
18
+ ClientSecret string
17
19
}
18
20
19
- var config = Config {
20
- ImageDir : "./images" ,
21
- Password : "" ,
22
- Port : "8009" ,
23
- Title : "在线图集" ,
24
- Icon : "https://i.obai.cc/favicon.ico" ,
25
- Dynamic : "false" ,
26
- Adderss : "http://localhost:8009" ,
27
- Secure : "false" ,
28
- Linuxdo : "false" ,
29
- LinuxdoClientId : "" ,
30
- LinuxdoClientSecret : "" ,
31
- }
21
+ var config = Config {}
32
22
33
23
var categoryCache []Category
34
24
@@ -46,24 +36,31 @@ var imageExtensions = map[string]bool{
46
36
".webp" : true ,
47
37
}
48
38
49
- func initConfig () {
50
- envVars := map [string ]* string {
51
- "SITE_DIR" : & config .ImageDir ,
52
- "SITE_SECURE" : & config .Secure ,
53
- "SITE_PASSWORD" : & config .Password ,
54
- "SITE_PORT" : & config .Port ,
55
- "SITE_TITLE" : & config .Title ,
56
- "SITE_ICON" : & config .Icon ,
57
- "SITE_DYNAMIC" : & config .Dynamic ,
58
- "SITE_LINUXDO" : & config .Linuxdo ,
59
- "SITE_URL" : & config .Adderss ,
60
- "SITE_LINUXDO_CLIENT_ID" : & config .LinuxdoClientId ,
61
- "SITE_LINUXDO_CLIENT_SECRET" : & config .LinuxdoClientSecret ,
39
+ func initEnv () {
40
+ envDefaults := map [string ]struct {
41
+ target * string
42
+ envKey string
43
+ defaultVal string
44
+ }{
45
+ "ImageDir" : {& config .ImageDir , "SITE_DIR" , "./images" },
46
+ "Port" : {& config .Port , "SITE_PORT" , "8009" },
47
+ "Title" : {& config .Title , "SITE_TITLE" , "在线图集" },
48
+ "Icon" : {& config .Icon , "SITE_ICON" , "https://i.obai.cc/favicon.ico" },
49
+ "Dynamic" : {& config .Dynamic , "SITE_DYNAMIC" , "false" },
50
+ "Linuxdo" : {& config .Linuxdo , "SITE_LINUXDO" , "false" },
51
+ "Address" : {& config .Adderss , "SITE_Address" , "http://localhost:8009" },
52
+ "ClientId" : {& config .ClientId , "SITE_CLIENT_ID" , "" },
53
+ "ClientSecret" : {& config .ClientSecret , "SITE_CLIENT_SECRET" , "" },
54
+ "Secure" : {& config .Secure , "SITE_SECURE" , "false" },
55
+ "Password" : {& config .Password , "SITE_PASSWORD" , "" },
62
56
}
63
57
64
- for env , conf := range envVars {
65
- if val := os .Getenv (env ); val != "" {
66
- * conf = val
58
+ for _ , cfg := range envDefaults {
59
+ if val := os .Getenv (cfg .envKey ); val != "" {
60
+ * cfg .target = val
61
+ } else {
62
+ * cfg .target = cfg .defaultVal
67
63
}
68
64
}
65
+
69
66
}
0 commit comments