51 lines
964 B
Go
51 lines
964 B
Go
package core
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
"trojan/asset"
|
|
)
|
|
|
|
// ClientConfig 结构体
|
|
type ClientConfig struct {
|
|
Config
|
|
SSl ClientSSL `json:"ssl"`
|
|
Tcp ClientTCP `json:"tcp"`
|
|
}
|
|
|
|
// ClientSSL 结构体
|
|
type ClientSSL struct {
|
|
SSL
|
|
Verify bool `json:"verify"`
|
|
VerifyHostname bool `json:"verify_hostname"`
|
|
}
|
|
|
|
// ClientTCP 结构体
|
|
type ClientTCP struct {
|
|
TCP
|
|
}
|
|
|
|
// WriteClient 生成客户端json
|
|
func WriteClient(port int, password, domain, writePath string) bool {
|
|
data := asset.GetAsset("client.json")
|
|
config := ClientConfig{}
|
|
if err := json.Unmarshal(data, &config); err != nil {
|
|
fmt.Println(err)
|
|
return false
|
|
}
|
|
config.RemoteAddr = domain
|
|
config.RemotePort = port
|
|
config.Password = []string{password}
|
|
outData, err := json.MarshalIndent(config, "", " ")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return false
|
|
}
|
|
if err = os.WriteFile(writePath, outData, 0644); err != nil {
|
|
fmt.Println(err)
|
|
return false
|
|
}
|
|
return true
|
|
}
|