forked from pufferpanel/pufferpanel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstdin.go
More file actions
36 lines (31 loc) · 976 Bytes
/
stdin.go
File metadata and controls
36 lines (31 loc) · 976 Bytes
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
package pufferpanel
import (
"encoding/json"
"github.com/pufferpanel/pufferpanel/v3/utils"
)
type StdinConsoleConfiguration struct {
Type string `json:"type,omitempty"`
IP string `json:"ip,omitempty"`
Port string `json:"port,omitempty"`
Password string `json:"password,omitempty"`
} //@name StdinConsoleConfiguration
type stdinConfigAlias StdinConsoleConfiguration
func (v *StdinConsoleConfiguration) Replace(variables map[string]interface{}) StdinConsoleConfiguration {
return StdinConsoleConfiguration{
Type: v.Type,
IP: utils.ReplaceTokens(v.IP, variables),
Port: utils.ReplaceTokens(v.Port, variables),
Password: utils.ReplaceTokens(v.Password, variables),
}
}
func (v *StdinConsoleConfiguration) UnmarshalJSON(data []byte) error {
aux := stdinConfigAlias{}
if err := json.Unmarshal(data, &aux); err != nil {
return err
}
if aux.Type == "" {
aux.Type = "stdin"
}
*v = StdinConsoleConfiguration(aux)
return nil
}