diff options
author | Jakob Unterwurzacher | 2015-09-06 11:42:01 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-09-06 11:42:01 +0200 |
commit | 5f4c9240ca1092b47553fe34b9cc1b7836222b6a (patch) | |
tree | 4dd15443b1dd881f7df3ba9d8c4eb81364d0ab65 /main.go | |
parent | 58d1e24b7c4eb69376dd0ec230c42ea9aeb70f2d (diff) |
Add streaming read and write benchmarks
Run using
./main_benchmark.bash
Also, rewrite command line args handling
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 41 |
1 files changed, 29 insertions, 12 deletions
@@ -1,29 +1,46 @@ package main import ( - "bazil.org/fuse" - fusefs "bazil.org/fuse/fs" + "path/filepath" + "flag" + "os" "fmt" - "github.com/rfjakob/cluefs/lib/cluefs" "github.com/rfjakob/gocryptfs/frontend" - "os" + "bazil.org/fuse" + fusefs "bazil.org/fuse/fs" + ) const ( PROGRAM_NAME = "gocryptfs" USE_OPENSSL = true + + ERREXIT_USAGE = 1 + ERREXIT_NEWFS = 2 + ERREXIT_MOUNT = 3 + ERREXIT_SERVE = 4 + ERREXIT_MOUNT2 = 5 ) func main() { // Parse command line arguments - conf, err := cluefs.ParseArguments() - if err != nil { - os.Exit(1) + flag.Parse() + if flag.NArg() < 2 { + fmt.Printf("NArg=%d\n", flag.NArg()) + fmt.Printf("usage: %s CIPHERDIR MOUNTPOINT\n", PROGRAM_NAME) + os.Exit(ERREXIT_USAGE) } + cipherdir, _ := filepath.Abs(flag.Arg(0)) + mountpoint, err := filepath.Abs(flag.Arg(1)) + // Create the file system object var key [16]byte - cfs := frontend.NewFS(key, conf.GetShadowDir(), USE_OPENSSL) + cfs, err := frontend.NewFS(key, cipherdir, USE_OPENSSL) + if err != nil { + fmt.Println(err) + os.Exit(ERREXIT_NEWFS) + } // Mount the file system mountOpts := []fuse.MountOption{ @@ -33,24 +50,24 @@ func main() { fuse.LocalVolume(), fuse.MaxReadahead(1024*1024), } - conn, err := fuse.Mount(conf.GetMountPoint(), mountOpts...) + conn, err := fuse.Mount(mountpoint, mountOpts...) if err != nil { fmt.Println(err) - os.Exit(1) + os.Exit(ERREXIT_MOUNT) } defer conn.Close() // Start serving requests if err = fusefs.Serve(conn, cfs); err != nil { fmt.Println(err) - os.Exit(1) + os.Exit(ERREXIT_SERVE) } // Check for errors when mounting the file system <-conn.Ready if err = conn.MountError; err != nil { fmt.Println(err) - os.Exit(1) + os.Exit(ERREXIT_MOUNT2) } // We are done |