diff options
author | Jakob Unterwurzacher | 2015-09-05 20:30:20 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-09-05 20:30:20 +0200 |
commit | 11fb037e7e7d84405b3bed9de2aa500e49d9502d (patch) | |
tree | f94eea4b2cccc1620b51f163837d26082e6cae58 /frontend/fe_fs.go | |
parent | 7e564f928fef80b0485210603a8aa58b14ca5109 (diff) |
Cleanup and rename files
Diffstat (limited to 'frontend/fe_fs.go')
-rw-r--r-- | frontend/fe_fs.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/frontend/fe_fs.go b/frontend/fe_fs.go new file mode 100644 index 0000000..470095f --- /dev/null +++ b/frontend/fe_fs.go @@ -0,0 +1,47 @@ +package frontend + +// frontend sits between FUSE and ClueFS +// and uses cryptfs for all crypto operations +// +// cryptfs +// ^ +// | +// v +// FUSE <-> frontend <-> ClueFS +// +// This file handles just the root directory + +import ( + "fmt" + "github.com/rfjakob/gocryptfs/cryptfs" + "github.com/rfjakob/cluefs/lib/cluefs" + fusefs "bazil.org/fuse/fs" +) + +type FS struct { + *cryptfs.CryptFS + *cluefs.ClueFS + backing string +} + +type nullTracer struct {} + +func (nullTracer) Trace(op cluefs.FsOperTracer) {} + +func NewFS(key [16]byte, backing string) *FS { + var nt nullTracer + clfs, err := cluefs.NewClueFS(backing, nt) + if err != nil { + panic(err) + } + return &FS { + CryptFS: cryptfs.NewCryptFS(key), + ClueFS: clfs, + backing: backing, + } +} + +func (fs *FS) Root() (fusefs.Node, error) { + fmt.Printf("Root\n") + return NewDir("", fs.backing, fs), nil +} |