fs_impl.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package openngvfs
  2. import (
  3. "github.com/spf13/afero"
  4. "os"
  5. "time"
  6. )
  7. var _ afero.Fs = (*OpenNagaeVFS)(nil)
  8. func (n *OpenNagaeVFS) Create(name string) (afero.File, error) {
  9. f, err := n.root.Create(name)
  10. if err != nil {
  11. return nil, n.errorProcess(name, "create", err)
  12. }
  13. return f, nil
  14. }
  15. func (n *OpenNagaeVFS) Mkdir(name string, perm os.FileMode) error {
  16. err := n.root.Mkdir(name, perm)
  17. if err != nil {
  18. return n.errorProcess(name, "create", err)
  19. }
  20. return nil
  21. }
  22. func (n *OpenNagaeVFS) Name() string {
  23. return "nagae-vfs"
  24. }
  25. func (n *OpenNagaeVFS) MkdirAll(path string, perm os.FileMode) error {
  26. err := n.root.MkdirAll(path, perm)
  27. if err != nil {
  28. return n.errorProcess(path, "mkdirall", err)
  29. }
  30. return nil
  31. }
  32. func (n *OpenNagaeVFS) Open(name string) (afero.File, error) {
  33. f, err := n.root.Open(name)
  34. if err != nil {
  35. return nil, n.errorProcess(name, "open", err)
  36. }
  37. return f, nil
  38. }
  39. func (n *OpenNagaeVFS) OpenFile(name string, flag int, perm os.FileMode) (afero.File, error) {
  40. f, err := n.root.OpenFile(name, flag, perm)
  41. if err != nil {
  42. return nil, n.errorProcess(name, "openfile", err)
  43. }
  44. return f, nil
  45. }
  46. func (n *OpenNagaeVFS) Remove(name string) error {
  47. err := n.root.Remove(name)
  48. if err != nil {
  49. return n.errorProcess(name, "remove", err)
  50. }
  51. return nil
  52. }
  53. func (n *OpenNagaeVFS) RemoveAll(path string) error {
  54. err := n.root.RemoveAll(path)
  55. if err != nil {
  56. return n.errorProcess(path, "removeall", err)
  57. }
  58. return nil
  59. }
  60. func (n *OpenNagaeVFS) Rename(oldname, newname string) error {
  61. err := n.root.Rename(oldname, newname)
  62. if err != nil {
  63. return n.errorProcess(oldname, "rename", err)
  64. }
  65. return nil
  66. }
  67. func (n *OpenNagaeVFS) Stat(name string) (os.FileInfo, error) {
  68. info, err := n.root.Stat(name)
  69. if err != nil {
  70. return nil, n.errorProcess(name, "stat", err)
  71. }
  72. return info, nil
  73. }
  74. func (n *OpenNagaeVFS) Chmod(name string, mode os.FileMode) error {
  75. err := n.root.Chmod(name, mode)
  76. if err != nil {
  77. return n.errorProcess(name, "chmod", err)
  78. }
  79. return nil
  80. }
  81. func (n *OpenNagaeVFS) Chown(name string, uid, gid int) error {
  82. err := n.root.Chown(name, uid, gid)
  83. if err != nil {
  84. return n.errorProcess(name, "chown", err)
  85. }
  86. return nil
  87. }
  88. func (n *OpenNagaeVFS) Chtimes(name string, atime time.Time, mtime time.Time) error {
  89. err := n.root.Chtimes(name, atime, mtime)
  90. if err != nil {
  91. return n.errorProcess(name, "chtimes", err)
  92. }
  93. return nil
  94. }