store: use core synthetic types via aliases, remove local implementations
This commit is contained in:
parent
0aceefe75f
commit
ec251bf296
|
|
@ -89,15 +89,15 @@ func (s *BatchStore) List() ([]os.DirEntry, error) {
|
|||
func (s *BatchStore) Stat(name string) (os.FileInfo, error) {
|
||||
switch name {
|
||||
case "new":
|
||||
return &syntheticFileInfo{name: "new", mode: 0666, size: int64(len(batchNewTemplate))}, nil
|
||||
return &syntheticFileInfo{Name_: "new", Mode_: 0666, Size_: int64(len(batchNewTemplate))}, nil
|
||||
case "idx":
|
||||
return &syntheticFileInfo{name: "idx", mode: 0444, size: int64(len(s.index()))}, nil
|
||||
return &syntheticFileInfo{Name_: "idx", Mode_: 0444, Size_: int64(len(s.index()))}, nil
|
||||
}
|
||||
s.mu.RLock()
|
||||
_, ok := s.jobs[name]
|
||||
s.mu.RUnlock()
|
||||
if ok {
|
||||
return &syntheticFileInfo{name: name, mode: 0555, isDir: true}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: 0555, IsDir_: true}, nil
|
||||
}
|
||||
return nil, fmt.Errorf("%s: not found", name)
|
||||
}
|
||||
|
|
@ -449,7 +449,7 @@ func (js *BatchJobStore) Stat(name string) (os.FileInfo, error) {
|
|||
} else {
|
||||
size = int64(len(js.content(name)))
|
||||
}
|
||||
return &syntheticFileInfo{name: name, mode: f.mode, size: size}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: f.mode, Size_: size}, nil
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("%s: not found", name)
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ func (s *SessionFileStore) Stat(name string) (os.FileInfo, error) {
|
|||
default:
|
||||
size = int64(len(s.content(name)))
|
||||
}
|
||||
return &syntheticFileInfo{name: name, mode: f.mode, size: size}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: f.mode, Size_: size}, nil
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("%s: not found", name)
|
||||
|
|
|
|||
|
|
@ -44,13 +44,13 @@ func (s *SessionStore) List() ([]os.DirEntry, error) {
|
|||
|
||||
func (s *SessionStore) Stat(name string) (os.FileInfo, error) {
|
||||
if mode, ok := sessionStoreFiles[name]; ok {
|
||||
return &syntheticFileInfo{name: name, mode: mode}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: mode}, nil
|
||||
}
|
||||
s.srv.mu.RLock()
|
||||
_, ok := s.srv.sessions[name]
|
||||
s.srv.mu.RUnlock()
|
||||
if ok {
|
||||
return &syntheticFileInfo{name: name, mode: 0555, isDir: true}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: 0555, IsDir_: true}, nil
|
||||
}
|
||||
return nil, fmt.Errorf("%s: not found", name)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,13 +74,13 @@ func readSkill(name string) ([]byte, error) {
|
|||
|
||||
func (s *SkillStore) Stat(name string) (os.FileInfo, error) {
|
||||
if name == "idx" {
|
||||
return &syntheticFileInfo{name: "idx", mode: 0444}, nil
|
||||
return &syntheticFileInfo{Name_: "idx", Mode_: 0444}, nil
|
||||
}
|
||||
skillName := strings.TrimSuffix(name, ".md")
|
||||
if _, err := readSkill(skillName); err != nil {
|
||||
return nil, fmt.Errorf("%s: not found", name)
|
||||
}
|
||||
return &syntheticFileInfo{name: name, mode: 0666}, nil
|
||||
return &syntheticFileInfo{Name_: name, Mode_: 0666}, nil
|
||||
}
|
||||
|
||||
func (s *SkillStore) List() ([]os.DirEntry, error) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package p9
|
|||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"ollie/pkg/store"
|
||||
)
|
||||
|
|
@ -15,52 +14,18 @@ type (
|
|||
BlobStore = store.BlobStore
|
||||
Store = store.Store
|
||||
FlatDirStore = store.FlatDir
|
||||
|
||||
syntheticFileInfo = store.SyntheticFileInfo
|
||||
)
|
||||
|
||||
func NewFlatDirStore(dir string, perm os.FileMode) *FlatDirStore {
|
||||
return store.NewFlatDir(dir, perm)
|
||||
}
|
||||
|
||||
// syntheticFileInfo implements os.FileInfo for entries with no backing file.
|
||||
type syntheticFileInfo struct {
|
||||
name string
|
||||
mode os.FileMode
|
||||
size int64
|
||||
isDir bool
|
||||
}
|
||||
|
||||
func (f *syntheticFileInfo) Name() string { return f.name }
|
||||
func (f *syntheticFileInfo) Size() int64 { return f.size }
|
||||
func (f *syntheticFileInfo) Mode() os.FileMode { return f.mode }
|
||||
func (f *syntheticFileInfo) ModTime() time.Time { return time.Time{} }
|
||||
func (f *syntheticFileInfo) IsDir() bool { return f.isDir }
|
||||
func (f *syntheticFileInfo) Sys() any { return nil }
|
||||
|
||||
// syntheticEntryImpl implements os.DirEntry for entries with no backing file.
|
||||
type syntheticEntryImpl struct {
|
||||
name string
|
||||
mode os.FileMode
|
||||
isDir bool
|
||||
}
|
||||
|
||||
func (e *syntheticEntryImpl) Name() string { return e.name }
|
||||
func (e *syntheticEntryImpl) IsDir() bool { return e.isDir }
|
||||
func (e *syntheticEntryImpl) Type() os.FileMode {
|
||||
if e.isDir {
|
||||
return os.ModeDir
|
||||
}
|
||||
return 0
|
||||
}
|
||||
func (e *syntheticEntryImpl) Info() (os.FileInfo, error) {
|
||||
return &syntheticFileInfo{name: e.name, mode: e.mode, isDir: e.isDir}, nil
|
||||
}
|
||||
|
||||
// syntheticEntry returns a synthetic file DirEntry.
|
||||
func syntheticEntry(name string, mode os.FileMode) os.DirEntry {
|
||||
return &syntheticEntryImpl{name: name, mode: mode}
|
||||
return store.FileEntry(name, mode)
|
||||
}
|
||||
|
||||
// syntheticDirEntry returns a synthetic directory DirEntry.
|
||||
func syntheticDirEntry(name string, mode os.FileMode) os.DirEntry {
|
||||
return &syntheticEntryImpl{name: name, mode: mode, isDir: true}
|
||||
return store.DirEntry(name, mode)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ func NewToolStore() *ToolStore {
|
|||
|
||||
func (s *ToolStore) Stat(name string) (os.FileInfo, error) {
|
||||
if name == "idx" {
|
||||
return &syntheticFileInfo{name: "idx", mode: 0444}, nil
|
||||
return &syntheticFileInfo{Name_: "idx", Mode_: 0444}, nil
|
||||
}
|
||||
return s.FlatDirStore.Stat(name)
|
||||
}
|
||||
|
|
|
|||
Reference in New Issue