From bab0697f0e8a98cfa28c7527ee616e954c7afe91 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Tue, 8 Aug 2017 08:05:52 +0200 Subject: Add OpenWritable to fs interfaces --- fs/fs.go | 3 ++- fs/memory.go | 6 +++++- fs/os.go | 10 +++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) (limited to 'fs') diff --git a/fs/fs.go b/fs/fs.go index b06ded8..d6d0618 100644 --- a/fs/fs.go +++ b/fs/fs.go @@ -23,7 +23,8 @@ type File interface { type RegularFile interface { File - Open() (io.ReadWriteCloser, error) + Open() (io.ReadCloser, error) + OpenWritable() (io.WriteCloser, error) } type Dir interface { diff --git a/fs/memory.go b/fs/memory.go index 221ff36..2bc11dc 100644 --- a/fs/memory.go +++ b/fs/memory.go @@ -40,7 +40,11 @@ type memfsFile struct { func (memfsFile) Type() FileType { return FFile } -func (f memfsFile) Open() (io.ReadWriteCloser, error) { +func (f memfsFile) Open() (io.ReadCloser, error) { + return f, nil +} + +func (f memfsFile) OpenWritable() (io.WriteCloser, error) { return f, nil } diff --git a/fs/os.go b/fs/os.go index f41d111..166cf92 100644 --- a/fs/os.go +++ b/fs/os.go @@ -58,7 +58,7 @@ func (f osFile) Delete() error { return os.RemoveAll(f.fullpath) } -func (f osFile) Open() (io.ReadWriteCloser, error) { +func (f osFile) Open() (io.ReadCloser, error) { fh, err := os.Open(f.fullpath) if err != nil { return nil, err @@ -66,6 +66,14 @@ func (f osFile) Open() (io.ReadWriteCloser, error) { return fh, nil } +func (f osFile) OpenWritable() (io.WriteCloser, error) { + fh, err := os.Create(f.fullpath) + if err != nil { + return nil, err + } + return fh, nil +} + func (f osFile) Readdir() (list []File, err error) { fh, err := os.Open(f.fullpath) if err != nil { -- cgit v1.2.3-70-g09d2