mirror of https://github.com/spf13/afero.git
rclone: first commit
This commit is contained in:
parent
2a70f2bb2d
commit
c04f83af6a
11
go.mod
11
go.mod
|
@ -3,11 +3,12 @@ module github.com/spf13/afero
|
|||
require (
|
||||
cloud.google.com/go/storage v1.14.0
|
||||
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8
|
||||
github.com/pkg/sftp v1.13.1
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa
|
||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99
|
||||
golang.org/x/text v0.3.4
|
||||
google.golang.org/api v0.40.0
|
||||
github.com/pkg/sftp v1.13.5-0.20211228200725-31aac3e1878d
|
||||
github.com/rclone/rclone v1.59.1 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
|
||||
golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb
|
||||
golang.org/x/text v0.3.7
|
||||
google.golang.org/api v0.83.0
|
||||
)
|
||||
|
||||
go 1.16
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package rclonefs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
_ "github.com/rclone/rclone/backend/all"
|
||||
"github.com/rclone/rclone/fs"
|
||||
"github.com/rclone/rclone/fs/config"
|
||||
"github.com/rclone/rclone/fs/config/configfile"
|
||||
"github.com/rclone/rclone/vfs"
|
||||
)
|
||||
|
||||
type RCFS struct {
|
||||
Fs *vfs.VFS
|
||||
Cwd string
|
||||
}
|
||||
|
||||
func (rcfs *RCFS) CreateRCFS(path string) (*RCFS, error) {
|
||||
u, e := user.Current()
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
|
||||
cfgpath := filepath.Join(u.HomeDir, ".config/rclone/rclone.conf")
|
||||
|
||||
e = config.SetConfigPath(cfgpath)
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
|
||||
configfile.Install()
|
||||
|
||||
rootdir, cwd, _ := strings.Cut(path, ":")
|
||||
rootdir += ":"
|
||||
|
||||
rfs, e := fs.NewFs(context.Background(), rootdir)
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
|
||||
vfs := vfs.New(rfs, nil)
|
||||
|
||||
data, _ := vfs.ReadFile("mock.json")
|
||||
fmt.Printf("%s\n", string(data))
|
||||
|
||||
return &RCFS{Fs: vfs, Cwd: cwd}, nil
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/spf13/afero"
|
||||
"github.com/spf13/afero/rclonefs"
|
||||
)
|
||||
|
||||
func main() {
|
||||
newrc := rclonefs.CreateRCFS("godrive_mv1:")
|
||||
}
|
Loading…
Reference in New Issue