6
6
"github.com/golang/protobuf/jsonpb"
7
7
"github.com/pkg/errors"
8
8
"os"
9
+ "path/filepath"
9
10
"time"
10
11
)
11
12
@@ -103,15 +104,15 @@ func (s *Store) Add(entry *statemachine.StateChange) error {
103
104
104
105
_ , err = s .file .WriteString (jsonState )
105
106
if err != nil {
106
- return errors .Wrap (err , "Could not write to store" )
107
+ return errors .Wrapf (err , "Could not write '%v' to store" , jsonState )
107
108
}
108
109
_ , err = s .file .WriteString ("\n " )
109
110
if err != nil {
110
- return errors .Wrap (err , "Could not write to store" )
111
+ return errors .Wrap (err , "Could not write ' \n ' to store" )
111
112
}
112
113
err = s .file .Sync ()
113
114
if err != nil {
114
- return errors .Wrap (err , "Could not write to store" )
115
+ return errors .Wrap (err , "Could not sync store" )
115
116
}
116
117
return nil
117
118
}
@@ -121,9 +122,13 @@ func (s *Store) Reset() error {
121
122
if err := s .Close (); err != nil {
122
123
return errors .Wrap (err , "Could not close current store file" )
123
124
}
124
- backupFile := time .Now ().Format ("2006-01-02_15-04-05-MST" ) + "_" + s .filename
125
- if err := os .Rename (s .filename , backupFile ); err != nil {
126
- return errors .Wrap (err , "Could not rename store file" )
125
+ if len (s .entries ) > 0 {
126
+ base := filepath .Base (s .filename )
127
+ path := filepath .Dir (s .filename )
128
+ backupFile := filepath .Join (path , time .Now ().Format ("2006-01-02_15-04-05-MST" )+ "_" + base )
129
+ if err := os .Rename (s .filename , backupFile ); err != nil {
130
+ return errors .Wrap (err , "Could not rename store file" )
131
+ }
127
132
}
128
133
if err := s .Open (); err != nil {
129
134
return errors .Wrap (err , "Could not reopen new empty store" )
0 commit comments