...
1
16
17 package pathdriver
18
19 import (
20 "path/filepath"
21 )
22
23
24
25
26 type PathDriver interface {
27 Join(paths ...string) string
28 IsAbs(path string) bool
29 Rel(base, target string) (string, error)
30 Base(path string) string
31 Dir(path string) string
32 Clean(path string) string
33 Split(path string) (dir, file string)
34 Separator() byte
35 Abs(path string) (string, error)
36 Walk(string, filepath.WalkFunc) error
37 FromSlash(path string) string
38 ToSlash(path string) string
39 Match(pattern, name string) (matched bool, err error)
40 }
41
42
43 type pathDriver struct{}
44
45
46 var LocalPathDriver PathDriver = &pathDriver{}
47
48 func (*pathDriver) Join(paths ...string) string {
49 return filepath.Join(paths...)
50 }
51
52 func (*pathDriver) IsAbs(path string) bool {
53 return filepath.IsAbs(path)
54 }
55
56 func (*pathDriver) Rel(base, target string) (string, error) {
57 return filepath.Rel(base, target)
58 }
59
60 func (*pathDriver) Base(path string) string {
61 return filepath.Base(path)
62 }
63
64 func (*pathDriver) Dir(path string) string {
65 return filepath.Dir(path)
66 }
67
68 func (*pathDriver) Clean(path string) string {
69 return filepath.Clean(path)
70 }
71
72 func (*pathDriver) Split(path string) (dir, file string) {
73 return filepath.Split(path)
74 }
75
76 func (*pathDriver) Separator() byte {
77 return filepath.Separator
78 }
79
80 func (*pathDriver) Abs(path string) (string, error) {
81 return filepath.Abs(path)
82 }
83
84
85
86
87 func (*pathDriver) Walk(root string, walkFn filepath.WalkFunc) error {
88 return filepath.Walk(root, walkFn)
89 }
90
91 func (*pathDriver) FromSlash(path string) string {
92 return filepath.FromSlash(path)
93 }
94
95 func (*pathDriver) ToSlash(path string) string {
96 return filepath.ToSlash(path)
97 }
98
99 func (*pathDriver) Match(pattern, name string) (bool, error) {
100 return filepath.Match(pattern, name)
101 }
102
View as plain text