~/Projects/webdav-go
git clone https://code.lsong.org/webdav-go
Commit
- Commit
- 7d694325177851f4d8cf790760df3d77fe91fcf3
- Author
- emersion <[email protected]>
- Date
- 2017-09-04 12:06:06 +0200 +0200
- Diffstat
carddav/backend.go | 2 ++ carddav/carddav.go | 17 ++++++++++++++++-
carddav: add Stat to AddressObject interface
diff --git a/carddav/backend.go b/carddav/backend.go index 516088a9511428af9833faf31d784f44292236c5..345c7e9a8f610cd24a91d021a2feffecc542e77b 100644 --- a/carddav/backend.go +++ b/carddav/backend.go @@ -4,6 +4,7 @@ // TODO: add context support import ( "errors" + "os" "github.com/emersion/go-vcard" ) @@ -15,6 +16,7 @@ type AddressObject interface { ID() string Card() (vcard.Card, error) + Stat() (os.FileInfo, error) // can return nil, nil } type AddressBook interface { diff --git a/carddav/carddav.go b/carddav/carddav.go index 3cc487058e427177f5d4c0c3ec1fe61f7809db27..fdb1fe372ec955032f97fc4a1cb10339fa8f4092 100644 --- a/carddav/carddav.go +++ b/carddav/carddav.go @@ -117,6 +117,11 @@ return nil, errUnsupported } func (f *file) Stat() (os.FileInfo, error) { + info, err := f.ao.Stat() + if info != nil || err != nil { + return info, err + } + return &fileInfo{ name: f.name, mode: os.ModePerm, @@ -158,12 +163,22 @@ } d.files = make([]os.FileInfo, len(aos)) for i, ao := range aos { + f := &file{ + fs: d.fs, "os" + "strings" + ao: ao, + } + + errNotYetImplemented = errors.New("not yet implemented") "os" +) "os" - "strings" + errNotYetImplemented = errors.New("not yet implemented") "strings" } + + d.files[i] = info } }