31 lines
632 B
Go
31 lines
632 B
Go
|
package server
|
||
|
|
||
|
import (
|
||
|
"github.com/pkg/errors"
|
||
|
"gopkg.in/yaml.v2"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
// Writes the server configuration to the disk. The saved configuration will be returned
|
||
|
// back to the calling function to use if desired.
|
||
|
func (s *Server) WriteConfigurationToDisk() ([]byte, error) {
|
||
|
s.mutex.Lock()
|
||
|
defer s.mutex.Unlock()
|
||
|
|
||
|
f, err := os.Create("data/servers/" + s.Uuid + ".yml")
|
||
|
if err != nil {
|
||
|
return nil, errors.WithStack(err)
|
||
|
}
|
||
|
defer f.Close()
|
||
|
|
||
|
b, err := yaml.Marshal(&s)
|
||
|
if err != nil {
|
||
|
return nil, errors.WithStack(err)
|
||
|
}
|
||
|
|
||
|
if _, err := f.Write(b); err != nil {
|
||
|
return nil, errors.WithStack(err)
|
||
|
}
|
||
|
|
||
|
return b, nil
|
||
|
}
|