frontend_fs.go 518 B

1234567891011121314151617181920212223242526272829303132
  1. package websubsvc
  2. import (
  3. "io/fs"
  4. "os"
  5. "path"
  6. )
  7. type IFilesystem interface {
  8. fs.StatFS
  9. }
  10. var _ IFilesystem = (*OsFsWithPrefix)(nil)
  11. type OsFsWithPrefix struct {
  12. prefix string
  13. }
  14. func NewOsFsWithPrefix(prefix string) *OsFsWithPrefix {
  15. f := &OsFsWithPrefix{
  16. prefix: prefix,
  17. }
  18. return f
  19. }
  20. func (o OsFsWithPrefix) Open(name string) (fs.File, error) {
  21. return os.Open(path.Join(o.prefix, name))
  22. }
  23. func (o OsFsWithPrefix) Stat(name string) (fs.FileInfo, error) {
  24. return os.Stat(path.Join(o.prefix, name))
  25. }