kis-flow/file/config_export.go

66 lines
1.2 KiB
Go
Raw Normal View History

2024-01-12 17:27:43 +08:00
package file
import (
"fmt"
2024-04-16 15:11:23 +08:00
"os"
2024-03-26 14:54:50 +08:00
"github.com/aceld/kis-flow/common"
"github.com/aceld/kis-flow/kis"
2024-03-01 16:29:07 +08:00
2024-04-16 15:28:59 +08:00
yaml "gopkg.in/yaml.v3"
2024-01-12 17:27:43 +08:00
)
2024-04-15 17:50:02 +08:00
// ConfigExportYaml exports the flow configuration and saves it locally
func ConfigExportYaml(flow kis.Flow, savePath string) error {
2024-01-12 17:27:43 +08:00
2024-04-15 17:50:02 +08:00
var data []byte
var err error
data, err = yaml.Marshal(flow.GetConfig())
if err != nil {
return err
}
// flow
err = os.WriteFile(savePath+common.KisIDTypeFlow+"-"+flow.GetName()+".yaml", data, 0644)
if err != nil {
2024-01-12 17:27:43 +08:00
return err
2024-04-15 17:50:02 +08:00
}
// function
for _, fp := range flow.GetConfig().Flows {
fConf := flow.GetFuncConfigByName(fp.FuncName)
if fConf == nil {
return fmt.Errorf("function name = %s config is nil ", fp.FuncName)
}
fData, err := yaml.Marshal(fConf)
2024-01-12 17:27:43 +08:00
if err != nil {
return err
}
2024-04-15 17:50:02 +08:00
if err := os.WriteFile(savePath+common.KisIDTypeFunction+"-"+fp.FuncName+".yaml", fData, 0644); err != nil {
return err
}
// Connector
if fConf.Option.CName != "" {
cConf, err := fConf.GetConnConfig()
if err != nil {
return err
2024-01-12 17:27:43 +08:00
}
2024-04-15 17:50:02 +08:00
cdata, err := yaml.Marshal(cConf)
if err != nil {
2024-01-12 17:27:43 +08:00
return err
}
2024-04-15 17:50:02 +08:00
if err := os.WriteFile(savePath+common.KisIDTypeConnector+"-"+cConf.CName+".yaml", cdata, 0644); err != nil {
return err
2024-01-12 17:27:43 +08:00
}
}
}
return nil
}