Skip to content

Commit 35a9ed0

Browse files
authored
Merge pull request #2 from chenmin1992/release_topom
Remove my own topom
2 parents 2259778 + 46e583f commit 35a9ed0

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

pkg/models/store.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,19 @@ func (s *Store) Release() error {
123123
return s.client.Delete(s.LockPath())
124124
}
125125

126+
func (s *Store) ReleaseByToken(token string) error {
127+
if b, err := s.client.Read(s.LockPath(), false); err != nil {
128+
return err
129+
} else if b != nil {
130+
if t, err := Decode(b); err != nil {
131+
return err
132+
} else if t.Token == token {
133+
return s.Release()
134+
}
135+
}
136+
return nil
137+
}
138+
126139
func (s *Store) LoadTopom(must bool) (*Topom, error) {
127140
return LoadTopom(s.client, s.product, must)
128141
}

pkg/models/topom.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,11 @@ type Topom struct {
1818
func (t *Topom) Encode() []byte {
1919
return jsonEncode(t)
2020
}
21+
22+
func Decode(b []byte) (*Topom, error) {
23+
s := &Topom{}
24+
if err := jsonDecode(s, b); err != nil {
25+
return nil, err
26+
}
27+
return s, nil
28+
}

pkg/topom/topom.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func (s *Topom) Close() error {
168168
defer s.store.Close()
169169

170170
if s.online {
171-
if err := s.store.Release(); err != nil {
171+
if err := s.store.ReleaseByToken(s.model.Token); err != nil {
172172
log.ErrorErrorf(err, "store: release lock of %s failed", s.config.ProductName)
173173
return errors.Errorf("store: release lock of %s failed", s.config.ProductName)
174174
}

0 commit comments

Comments
 (0)