| 717 | } |
| 718 | |
| 719 | func fileInfoToStatic(fi fs.FileInfo, fixupMode bool) fs.FileInfo { |
| 720 | mode := fi.Mode() |
| 721 | if fixupMode { |
| 722 | // WebDAV doesn't transmit file modes, so we just mimic the defaults that |
| 723 | // our WebDAV client uses. |
| 724 | mode = os.FileMode(0664) |
| 725 | if fi.IsDir() { |
| 726 | mode = 0775 | os.ModeDir |
| 727 | } |
| 728 | } |
| 729 | return &shared.StaticFileInfo{ |
| 730 | Named: fi.Name(), |
| 731 | Sized: fi.Size(), |
| 732 | Moded: mode, |
| 733 | ModdedTime: fi.ModTime().Truncate(1 * time.Second).UTC(), |
| 734 | Dir: fi.IsDir(), |
| 735 | } |
| 736 | } |
| 737 | |
| 738 | func pathTo(remote, share, name string) string { |
| 739 | return path.Join(domain, remote, share, name) |