Archived
1

first commit

This commit is contained in:
2024-12-23 01:55:48 +03:00
commit b514cc36fb
33 changed files with 1969 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
package space_worker
import (
"fmt"
"path/filepath"
"playbookctl/internal/types"
"playbookctl/internal/utils"
)
func (app *SpaceWorker) ListHosts() error {
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
app.log.Trace("try read hosts.yml")
hosts, err := types.ReadHosts(app.workDir)
if err != nil {
return err
}
app.log.Trace("try read default.host.txt")
defaultHost, err := utils.ReadStringFile(filepath.Join(app.workDir, "default.host.txt"))
if err != nil {
return err
}
fmt.Println("Хосты:")
for serverName, props := range *hosts {
defaultMarker := ""
if serverName == defaultHost {
defaultMarker = " *"
}
fmt.Printf(" - %s [%s:%d] (%s)%s\n", serverName, props.Host, props.Port, props.User, defaultMarker)
}
return nil
}
func (app *SpaceWorker) HostsAdd(name string, host string, port uint16, user string) error {
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
app.log.Trace("try read hosts.yml")
hosts, err := types.ReadHosts(app.workDir)
if err != nil {
return err
}
app.log.Trace("append new host to hosts.yml")
(*hosts)[name] = types.THostProps{
Host: host,
Port: port,
User: user,
Interpreter: types.DefaultInterpreter,
}
app.log.Trace("write hosts.yml")
if err := types.WriteHosts(app.workDir, hosts); err != nil {
return err
}
app.log.Trace(fmt.Sprintf("create vars/%s.vars.yml", name))
err = utils.WriteEmptyYaml(filepath.Join(app.workDir, "vars", fmt.Sprintf("%s.vars.yml", name)))
if err != nil {
return err
}
app.log.Info("Новый хост добавлен")
return nil
}
func (app *SpaceWorker) HostRemove(name string) error {
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
app.log.Trace("try read hosts.yml")
hosts, err := types.ReadHosts(app.workDir)
if err != nil {
return err
}
app.log.Trace("remove host from hosts.yml")
delete(*hosts, name)
app.log.Trace("write hosts.yml")
if err := types.WriteHosts(app.workDir, hosts); err != nil {
return err
}
app.log.Trace(fmt.Sprintf("remove vars/%s.vars.yml", name))
err = utils.RemoveFile(filepath.Join(app.workDir, "vars", fmt.Sprintf("%s.vars.yml", name)))
if err != nil {
return err
}
app.log.Info("Хост удалён")
return nil
}
func (app *SpaceWorker) SetDefaultHost(name string) error {
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
app.log.Trace("try write default.host.txt")
err := utils.WriteStringFile(filepath.Join(app.workDir, "default.host.txt"), name)
if err != nil {
return err
}
app.log.Info(fmt.Sprintf("Хост '%s' установлен по-умолчанию", name))
return nil
}
func (app *SpaceWorker) GetDefaultHost() (string, error) {
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
app.log.Trace("try read default.host.txt")
value, err := utils.ReadStringFile(filepath.Join(app.workDir, "default.host.txt"))
if err != nil {
return "", err
}
return value, nil
}