aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-28 14:58:50 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-03-28 14:58:50 +0200
commitd97fab561070205d57f756015cf9e85a559a573e (patch)
tree71a502d2623526aaf7db88fa6a64ce85f7f7c92e
parent5215daf6ebf0316a57b09029ffe7b71608baafa1 (diff)
Gurad save and load
-rw-r--r--server.go26
-rw-r--r--server_test.go2
2 files changed, 17 insertions, 11 deletions
diff --git a/server.go b/server.go
index 110d81b..0f0bdad 100644
--- a/server.go
+++ b/server.go
@@ -30,22 +30,28 @@ func NewServer(fname string) (*Server, error) {
// Save routes to persistent file
func (s Server) Save() error {
- fd, err := os.Create(s.Data)
- if err != nil {
- return err
+ if s.Data != "" {
+ fd, err := os.Create(s.Data)
+ if err != nil {
+ return err
+ }
+ defer fd.Close()
+ return gob.NewEncoder(fd).Encode(s.Route)
}
- defer fd.Close()
- return gob.NewEncoder(fd).Encode(s.Route)
+ return nil
}
// Load routes from persistent file
func (s *Server) Load() error {
- fd, err := os.Open(s.Data)
- if err != nil {
- return err
+ if s.Data != "" {
+ fd, err := os.Open(s.Data)
+ if err != nil {
+ return err
+ }
+ defer fd.Close()
+ return gob.NewDecoder(fd).Decode(&s.Route)
}
- defer fd.Close()
- return gob.NewDecoder(fd).Decode(&s.Route)
+ return nil
}
func (s *Server) Start() <-chan error {
diff --git a/server_test.go b/server_test.go
index 9a8e651..d0920c5 100644
--- a/server_test.go
+++ b/server_test.go
@@ -17,7 +17,7 @@ func TestNewServer(t *testing.T) {
}))
defer backendServer.Close()
- server, err := NewServer("data.gob")
+ server, err := NewServer("")
if err != nil {
t.Error(err)
}