616c6b1c62
Release Docker multi arch / docker (push) Has been cancelled
Test Install Script / Test Script Syntax (push) Has been cancelled
Test Install Script / Test on almalinux-10 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-10 (root) (push) Has been cancelled
Test Install Script / Test on almalinux-8 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-8 (root) (push) Has been cancelled
Test Install Script / Test on almalinux-9 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-9 (root) (push) Has been cancelled
Test Install Script / Test on amazonlinux-2 (default) (push) Has been cancelled
Test Install Script / Test on amazonlinux-2 (root) (push) Has been cancelled
Test Install Script / Test on debian-11 (default) (push) Has been cancelled
Test Install Script / Test on debian-11 (root) (push) Has been cancelled
Test Install Script / Test on debian-12 (default) (push) Has been cancelled
Test Install Script / Test on debian-12 (root) (push) Has been cancelled
Test Install Script / Test on debian-13 (default) (push) Has been cancelled
Test Install Script / Test on debian-13 (root) (push) Has been cancelled
Test Install Script / Test on fedora-latest (default) (push) Has been cancelled
Test Install Script / Test on fedora-latest (root) (push) Has been cancelled
Test Install Script / Test on rocky-10 (default) (push) Has been cancelled
Test Install Script / Test on rocky-10 (root) (push) Has been cancelled
Test Install Script / Test on rocky-8 (default) (push) Has been cancelled
Test Install Script / Test on rocky-8 (root) (push) Has been cancelled
Test Install Script / Test on rocky-9 (default) (push) Has been cancelled
Test Install Script / Test on rocky-9 (root) (push) Has been cancelled
Test Install Script / Test on ubuntu-22.04 (default) (push) Has been cancelled
Test Install Script / Test on ubuntu-22.04 (root) (push) Has been cancelled
Test Install Script / Test on ubuntu-24.04 (default) (push) Has been cancelled
Test Install Script / Test on ubuntu-24.04 (root) (push) Has been cancelled
44 lines
710 B
Go
44 lines
710 B
Go
package torrfs
|
|
|
|
import (
|
|
"io/fs"
|
|
"strings"
|
|
|
|
"server/torr"
|
|
)
|
|
|
|
type INode interface {
|
|
fs.ReadDirFile
|
|
fs.DirEntry
|
|
|
|
Open(name string) (fs.File, error)
|
|
|
|
Parent() INode
|
|
|
|
Torrent() *torr.Torrent
|
|
SetTorrent(torr *torr.Torrent)
|
|
}
|
|
|
|
func Open(d INode, name string) (fs.File, error) {
|
|
trimPath := strings.TrimPrefix(name, d.Name())
|
|
trimPath = strings.TrimSuffix(trimPath, "/")
|
|
trimPath = strings.TrimPrefix(trimPath, "/")
|
|
if trimPath == "" {
|
|
return d, nil
|
|
}
|
|
arr := strings.Split(trimPath, "/")
|
|
if len(arr) == 0 {
|
|
return nil, fs.ErrNotExist
|
|
}
|
|
|
|
dirs, _ := d.ReadDir(-1)
|
|
|
|
for _, dir := range dirs {
|
|
if dir.Name() == arr[0] {
|
|
return dir.(INode).Open(trimPath)
|
|
}
|
|
}
|
|
|
|
return nil, fs.ErrNotExist
|
|
}
|