Created
September 6, 2018 04:29
-
-
Save discobean/814bf2ffacca61355072fea2a6b9eedd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"errors" | |
"io" | |
"log" | |
"os" | |
"time" | |
"github.com/goftp/server" | |
) | |
func main() { | |
factory := TestDriverFactory{} | |
opts := &server.ServerOpts{ | |
Factory: factory, | |
Port: 2022, | |
Hostname: "127.0.0.1", | |
Auth: &server.SimpleAuth{Name: "root", Password: "root"}, | |
} | |
server := server.NewServer(opts) | |
err := server.ListenAndServe() | |
if err != nil { | |
log.Fatal("Error starting server:", err) | |
} | |
} | |
type TestDriver struct { | |
} | |
func (test TestDriver) Init(*server.Conn) { | |
} | |
func (test TestDriver) Stat(path string) (server.FileInfo, error) { | |
return &FileInfo{isDir: true}, nil | |
} | |
func (test TestDriver) ChangeDir(dir string) error { | |
return nil | |
} | |
func (test TestDriver) ListDir(path string, callback func(server.FileInfo) error) error { | |
return nil | |
} | |
func (test TestDriver) DeleteDir(path string) error { | |
return nil | |
} | |
func (test TestDriver) DeleteFile(path string) error { | |
return nil | |
} | |
func (test TestDriver) Rename(srcPath string, dstPath string) error { | |
return errors.New("Rename not implemented") | |
} | |
func (TestDriver) MakeDir(string) error { | |
return nil | |
} | |
func (test TestDriver) GetFile(path string, offset int64) (int64, io.ReadCloser, error) { | |
return 0, nil, errors.New("Get not available") | |
} | |
func (test TestDriver) PutFile(destPath string, data io.Reader, appendData bool) (int64, error) { | |
return 0, errors.New("Put not available") | |
} | |
type TestDriverFactory struct { | |
} | |
func (factory TestDriverFactory) NewDriver() (server.Driver, error) { | |
return &TestDriver{}, nil | |
} | |
type FileInfo struct { | |
path string | |
name string | |
size int64 | |
modTime time.Time | |
isDir bool | |
sys interface{} | |
owner string | |
group string | |
} | |
func (fi FileInfo) Name() string { | |
return fi.name | |
} | |
func (fi FileInfo) Size() int64 { | |
return fi.size | |
} | |
func (fi FileInfo) Mode() os.FileMode { | |
return os.FileMode(int(0777)) | |
} | |
func (fi FileInfo) ModTime() time.Time { | |
return time.Now() | |
} | |
func (fi FileInfo) IsDir() bool { | |
return fi.isDir | |
} | |
func (fi FileInfo) Sys() interface{} { | |
return nil | |
} | |
func (fi FileInfo) Owner() string { | |
return fi.owner | |
} | |
func (fi FileInfo) Group() string { | |
return fi.group | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment