Files
FemaInstaller/pkg/config/config.go

44 lines
1.2 KiB
Go

package config
import (
"encoding/json"
"os"
)
// ConnectionConfig содержит параметры для подключения и развертывания
type ConnectionConfig struct {
IP string `json:"ip"`
Port string `json:"port"`
Login string `json:"login"`
Password string `json:"password"`
DeploymentPackagePath string `json:"deployment_package_path"`
}
// Save сохраняет конфигурацию в файл
func (c *ConnectionConfig) Save(filePath string) error {
data, err := json.MarshalIndent(c, "", " ")
if err != nil {
return err
}
return os.WriteFile(filePath, data, 0644)
}
// Load загружает конфигурацию из файла
func Load(filePath string) (*ConnectionConfig, error) {
if _, err := os.Stat(filePath); os.IsNotExist(err) {
// Возвращаем пустую конфигурацию, если файл не найден
return &ConnectionConfig{Port: "22", Login: "root"}, nil
}
data, err := os.ReadFile(filePath)
if err != nil {
return nil, err
}
var cfg ConnectionConfig
if err := json.Unmarshal(data, &cfg); err != nil {
return nil, err
}
return &cfg, nil
}