forked from x/icebergs
108 lines
2.6 KiB
Go
108 lines
2.6 KiB
Go
package nfs
|
|
|
|
import (
|
|
"io"
|
|
"io/ioutil"
|
|
"os"
|
|
|
|
ice "shylinux.com/x/icebergs"
|
|
"shylinux.com/x/toolkits/file"
|
|
)
|
|
|
|
var Index = &ice.Context{Name: "nfs", Help: "存储模块"}
|
|
|
|
func init() {
|
|
ice.Index.Register(Index, nil, TAR, CAT, DIR, DEFS, SAVE, PUSH, COPY, LINK, TAIL, TRASH, GREP)
|
|
}
|
|
|
|
var DiskFile = file.NewDiskFile()
|
|
var PackFile = file.NewPackFile()
|
|
|
|
func init() { file.Init(ice.Pulse.OptionFiles(DiskFile, PackFile)) }
|
|
|
|
func StatFile(m *ice.Message, p string) (os.FileInfo, error) {
|
|
file := m.OptionFiles()
|
|
return file.StatFile(p)
|
|
}
|
|
func OpenFile(m *ice.Message, p string) (io.ReadCloser, error) {
|
|
file := m.OptionFiles()
|
|
return file.OpenFile(p)
|
|
}
|
|
func CreateFile(m *ice.Message, p string) (io.WriteCloser, string, error) {
|
|
file := m.OptionFiles()
|
|
return file.CreateFile(p)
|
|
}
|
|
func AppendFile(m *ice.Message, p string) (io.ReadWriteCloser, string, error) {
|
|
file := m.OptionFiles()
|
|
w, e := file.AppendFile(p)
|
|
return w, p, e
|
|
}
|
|
func WriteFile(m *ice.Message, p string, b []byte) error {
|
|
file := m.OptionFiles()
|
|
return file.WriteFile(p, b)
|
|
}
|
|
|
|
func ReadDir(m *ice.Message, p string) ([]os.FileInfo, error) {
|
|
file := m.OptionFiles()
|
|
list, e := file.ReadDir(p)
|
|
for i := 0; i < len(list)-1; i++ {
|
|
for j := i + 1; j < len(list); j++ {
|
|
if list[i].Name() > list[j].Name() {
|
|
list[i], list[j] = list[j], list[i]
|
|
}
|
|
}
|
|
}
|
|
return list, e
|
|
}
|
|
func MkdirAll(m *ice.Message, p string) error {
|
|
file := m.OptionFiles()
|
|
return file.MkdirAll(p, ice.MOD_DIR)
|
|
}
|
|
func RemoveAll(m *ice.Message, p string) error {
|
|
file := m.OptionFiles()
|
|
return file.RemoveAll(p)
|
|
}
|
|
func Remove(m *ice.Message, p string) error {
|
|
file := m.OptionFiles()
|
|
return file.Remove(p)
|
|
}
|
|
func Rename(m *ice.Message, oldname string, newname string) error {
|
|
file := m.OptionFiles()
|
|
return file.Rename(oldname, newname)
|
|
}
|
|
func Symlink(m *ice.Message, oldname string, newname string) error {
|
|
file := m.OptionFiles()
|
|
return file.Symlink(oldname, newname)
|
|
}
|
|
func Link(m *ice.Message, oldname string, newname string) error {
|
|
file := m.OptionFiles()
|
|
return file.Link(oldname, newname)
|
|
}
|
|
func Close(m *ice.Message) {
|
|
file := m.OptionFiles()
|
|
file.Close()
|
|
}
|
|
|
|
func ExistsFile(m *ice.Message, p string) bool {
|
|
file := m.OptionFiles()
|
|
if _, e := file.StatFile(p); e == nil {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
func ReadFile(m *ice.Message, p string) ([]byte, error) {
|
|
file := m.OptionFiles()
|
|
if f, e := file.OpenFile(p); e == nil {
|
|
return ioutil.ReadAll(f)
|
|
} else {
|
|
return nil, e
|
|
}
|
|
}
|
|
|
|
func NewWriteCloser(w func([]byte) (int, error), c func() error) io.WriteCloser {
|
|
return file.NewWriteCloser(w, c)
|
|
}
|
|
func NewReadCloser(r io.Reader) io.ReadCloser {
|
|
return file.NewReadCloser(r)
|
|
}
|