package configmdl import ( "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/errormdl" "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/filemdl" "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/securitymdl" "github.com/BurntSushi/toml" ) // InitConfig initConfig func InitConfig(fpath string, config interface{}) (toml.MetaData, error) { return toml.DecodeFile(fpath, config) } // InitConfigData initConfig using byte array func InitConfigData(data []byte, config interface{}) (toml.MetaData, error) { return toml.Decode(string(data), config) } // var config tomlConfig // InitConfig("../testingdata/testData/config/config.toml", &config) // fmt.Println(config.Name) //******* SECURE *******// // InitConfigSecure - Init Config Secure func InitConfigSecure(fpath string, config interface{}, key []byte) (toml.MetaData, error) { fileBytes, fileReadErr := filemdl.ReadFile(fpath) if fileReadErr != nil { return toml.MetaData{}, fileReadErr } fileContent, decryptErr := securitymdl.AESDecrypt(fileBytes, key) if errormdl.CheckErr2(decryptErr) != nil { return toml.MetaData{}, errormdl.CheckErr2(decryptErr) } return toml.Decode(string(fileContent), config) } // SaveConfig - SaveConfig func SaveConfig(fpath string, config interface{}) error { // bytes, tomlMarshalError := pellgotoml.Marshal(config) bytes, tomlMarshalError := toml.Marshal(config) if errormdl.CheckErr(tomlMarshalError) != nil { return errormdl.CheckErr(tomlMarshalError) } writeError := filemdl.WriteFile(fpath, bytes, false, false) if errormdl.CheckErr2(writeError) != nil { return errormdl.CheckErr2(writeError) } return nil } // SaveConfigSecure - SaveConfigSecure func SaveConfigSecure(fpath string, config interface{}, key []byte) error { configBytes, tomlMarshalError := toml.Marshal(config) if errormdl.CheckErr(tomlMarshalError) != nil { return errormdl.CheckErr(tomlMarshalError) } encryptedBytes, encryptError := securitymdl.AESEncrypt(configBytes, key) if errormdl.CheckErr1(encryptError) != nil { return errormdl.CheckErr1(encryptError) } writeError := filemdl.WriteFile(fpath, encryptedBytes, false, false) if errormdl.CheckErr2(writeError) != nil { return errormdl.CheckErr2(writeError) } return nil }