OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / spf13 / afero / readonlyfs.go
1 package afero
2
3 import (
4         "os"
5         "syscall"
6         "time"
7 )
8
9 type ReadOnlyFs struct {
10         source Fs
11 }
12
13 func NewReadOnlyFs(source Fs) Fs {
14         return &ReadOnlyFs{source: source}
15 }
16
17 func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) {
18         return ReadDir(r.source, name)
19 }
20
21 func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error {
22         return syscall.EPERM
23 }
24
25 func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error {
26         return syscall.EPERM
27 }
28
29 func (r *ReadOnlyFs) Name() string {
30         return "ReadOnlyFilter"
31 }
32
33 func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) {
34         return r.source.Stat(name)
35 }
36
37 func (r *ReadOnlyFs) Rename(o, n string) error {
38         return syscall.EPERM
39 }
40
41 func (r *ReadOnlyFs) RemoveAll(p string) error {
42         return syscall.EPERM
43 }
44
45 func (r *ReadOnlyFs) Remove(n string) error {
46         return syscall.EPERM
47 }
48
49 func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) {
50         if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 {
51                 return nil, syscall.EPERM
52         }
53         return r.source.OpenFile(name, flag, perm)
54 }
55
56 func (r *ReadOnlyFs) Open(n string) (File, error) {
57         return r.source.Open(n)
58 }
59
60 func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error {
61         return syscall.EPERM
62 }
63
64 func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error {
65         return syscall.EPERM
66 }
67
68 func (r *ReadOnlyFs) Create(n string) (File, error) {
69         return nil, syscall.EPERM
70 }