allow the use of static config files

This commit is contained in:
idk
2022-06-08 21:07:24 -04:00
parent fc76f10744
commit 17e3f67749
5 changed files with 57 additions and 1 deletions

View File

@ -4,12 +4,14 @@ import (
"fmt" "fmt"
//"io" //"io"
"io/fs" "io/fs"
"io/ioutil"
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/otiai10/copy" "github.com/otiai10/copy"
"gopkg.in/yaml.v3"
) )
type ClientConfig struct { type ClientConfig struct {
@ -156,6 +158,25 @@ func (cc *ClientConfig) CopyExecutable() error {
return nil return nil
} }
func (cc *ClientConfig) Load() error {
if _, err := os.Stat("client.yaml"); os.IsNotExist(err) {
return nil
}
yamlFile, err := ioutil.ReadFile("client.yaml")
if err != nil {
return err
}
return yaml.Unmarshal(yamlFile, cc)
}
func (cc *ClientConfig) Save() error {
bytes, err := yaml.Marshal(cc)
if err != nil {
fmt.Println(err)
}
return ioutil.WriteFile("client.yaml", bytes, 0644)
}
func find(root, ext string) []string { func find(root, ext string) []string {
var a []string var a []string
filepath.WalkDir(root, func(s string, d fs.DirEntry, e error) error { filepath.WalkDir(root, func(s string, d fs.DirEntry, e error) error {

View File

@ -84,6 +84,12 @@ func goBin() string {
func main() { func main() {
flagsSet() flagsSet()
if err := pc.Load(); err != nil {
log.Fatal(err)
}
if err := cc.Load(); err != nil {
log.Fatal(err)
}
if *cc.Executable != "" { if *cc.Executable != "" {
*cc.ClientName = *cc.Executable *cc.ClientName = *cc.Executable
@ -102,6 +108,8 @@ func main() {
//if err := os.MkdirAll("plugin/lib", 0755); err != nil { //if err := os.MkdirAll("plugin/lib", 0755); err != nil {
// log.Fatal(err) // log.Fatal(err)
//} //}
cc.Save()
pc.Save()
if err := cc.CopyResDir(); err != nil { if err := cc.CopyResDir(); err != nil {
log.Fatal(err) log.Fatal(err)
} }

5
go.mod
View File

@ -7,4 +7,7 @@ require (
i2pgit.org/idk/reseed-tools v0.0.9 i2pgit.org/idk/reseed-tools v0.0.9
) )
require github.com/otiai10/copy v1.7.0 // indirect require (
github.com/otiai10/copy v1.7.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

2
go.sum
View File

@ -1026,6 +1026,8 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

View File

@ -8,10 +8,12 @@ import (
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log" "log"
"os"
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/fuxingZhang/zip" "github.com/fuxingZhang/zip"
"gopkg.in/yaml.v3"
"i2pgit.org/idk/reseed-tools/su3" "i2pgit.org/idk/reseed-tools/su3"
) )
@ -296,3 +298,23 @@ func (pc *PluginConfig) LoadPrivateKey(path string) (*rsa.PrivateKey, error) {
func (pc *PluginConfig) keysPath(path string) (string, error) { func (pc *PluginConfig) keysPath(path string) (string, error) {
return filepath.Abs(filepath.Join(*pc.SignerDirectory, strings.Replace(path, "@", "_at_", -1)+".pem")) return filepath.Abs(filepath.Join(*pc.SignerDirectory, strings.Replace(path, "@", "_at_", -1)+".pem"))
} }
func (cc *PluginConfig) Load() error {
// check if plugin.yaml exists
if _, err := os.Stat("plugin.yaml"); os.IsNotExist(err) {
return nil
}
yamlFile, err := ioutil.ReadFile("plugin.yaml")
if err != nil {
return err
}
return yaml.Unmarshal(yamlFile, cc)
}
func (pc *PluginConfig) Save() {
bytes, err := yaml.Marshal(pc)
if err != nil {
fmt.Println(err)
}
ioutil.WriteFile("plugin.yaml", bytes, 0644)
}