@@ -2,13 +2,18 @@ package shell
2
2
3
3
import (
4
4
"fmt"
5
+ "os"
6
+ "path"
5
7
6
8
"github.com/spf13/viper"
7
9
)
8
10
9
11
type RPI_Config interface {
10
12
Port () uint32
11
13
Password_Hash () string
14
+ TLS_Cert_File () string
15
+ TLS_Key_File () string
16
+ TLS_Port () uint32
12
17
Update_Passphrase (phrase string )
13
18
}
14
19
@@ -17,16 +22,31 @@ type Dynamic_RPI_Config struct {
17
22
}
18
23
19
24
const (
20
- PASSWORD_HASH_KEY = "PASSWORD_HASH"
21
- PORT_NUMBER_KEY = "PORT_NUMBER"
25
+ PASSWORD_HASH_KEY = "PASSWORD_HASH"
26
+ PORT_NUMBER_KEY = "PORT_NUMBER"
27
+ TLS_CERT_FILE_KEY = "TLS_CERT_FILE"
28
+ TLS_KEY_FILE_KEY = "TLS_KEY_FILE"
29
+ TLS_PORT_NUMBER_KEY = "TLS_PORT_NUMBER"
22
30
)
23
31
32
+ func (config * Dynamic_RPI_Config ) Password_Hash () string {
33
+ return config .config .GetString (PASSWORD_HASH_KEY )
34
+ }
35
+
24
36
func (config * Dynamic_RPI_Config ) Port () uint32 {
25
37
return config .config .GetUint32 (PORT_NUMBER_KEY )
26
38
}
27
39
28
- func (config * Dynamic_RPI_Config ) Password_Hash () string {
29
- return config .config .GetString (PASSWORD_HASH_KEY )
40
+ func (config * Dynamic_RPI_Config ) TLS_Cert_File () string {
41
+ return config .config .GetString (TLS_CERT_FILE_KEY )
42
+ }
43
+
44
+ func (config * Dynamic_RPI_Config ) TLS_Key_File () string {
45
+ return config .config .GetString (TLS_KEY_FILE_KEY )
46
+ }
47
+
48
+ func (config * Dynamic_RPI_Config ) TLS_Port () uint32 {
49
+ return config .config .GetUint32 (TLS_PORT_NUMBER_KEY )
30
50
}
31
51
32
52
func (config * Dynamic_RPI_Config ) Update_Passphrase (phrase string ) {
@@ -41,13 +61,21 @@ func Load_PWA_config(path string) RPI_Config {
41
61
}
42
62
43
63
func Load_RPI_PWA_Config () RPI_Config {
44
- return Load_PWA_config ("/etc/piwebagent2/config" )
64
+ pwa_path := "/etc/piwebagent2"
65
+ config_path := "config"
66
+ if _ , err := os .Stat (pwa_path ); err == nil {
67
+ return Load_PWA_config (path .Join (pwa_path , config_path ))
68
+ }
69
+ return Load_PWA_config (config_path )
45
70
}
46
71
47
72
func load_PWA_config (path string ) (* viper.Viper , error ) {
48
73
config := viper .New ()
49
74
config .SetDefault (PASSWORD_HASH_KEY , "" )
50
75
config .SetDefault (PORT_NUMBER_KEY , uint32 (8080 ))
76
+ config .SetDefault (TLS_PORT_NUMBER_KEY , uint32 (8443 ))
77
+ config .SetDefault (TLS_CERT_FILE_KEY , "/etc/pwa_ca/rpi/cert.pem" )
78
+ config .SetDefault (TLS_KEY_FILE_KEY , "/etc/pwa_ca/rpi/key.pem" )
51
79
config .AddConfigPath (path )
52
80
config .SetConfigType ("env" )
53
81
config .WatchConfig ()
0 commit comments