aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/fs.go3
-rw-r--r--fs/memory.go6
-rw-r--r--fs/os.go10
3 files changed, 16 insertions, 3 deletions
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 {