From 59a3cf3ee57735430af09be01402bf11561b2167 Mon Sep 17 00:00:00 2001 From: nsz Date: Wed, 16 Nov 2011 13:09:12 +0100 Subject: [PATCH] store += append --- store/store.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/store/store.go b/store/store.go index 2595f88..b05c79e 100644 --- a/store/store.go +++ b/store/store.go @@ -41,8 +41,7 @@ func (c *Conn) Ensure(name string) (err error) { func (c *Conn) Set(name, k string, v []byte) (err error) { fn := filepath.Join(c.path, name, k) - // os.O_SYNC - f, err := os.Create(fn+".tmp") + f, err := os.OpenFile(fn+".tmp", os.O_CREATE|os.O_TRUNC|os.O_WRONLY|os.O_SYNC, 0666) if err != nil { return } @@ -55,6 +54,17 @@ func (c *Conn) Set(name, k string, v []byte) (err error) { return } +func (c *Conn) Append(name, k string, v []byte) (err error) { + fn := filepath.Join(c.path, name, k) + f, err := os.OpenFile(fn, os.O_CREATE|os.O_APPEND|os.O_WRONLY|os.O_SYNC, 0666) + if err != nil { + return + } + defer f.Close() + _, err = f.Write(v) + return +} + func (c *Conn) Close() (err error) { return } -- 2.20.1