func mountServer(token, mountpoint string) (*fuse.Server, error) { if err := os.MkdirAll(filepath.Dir(mountpoint), 0755); err != nil { return nil, err } client, err := vault.Client(token) if err != nil { return nil, err } kwfs, root := fs.NewFs(client) mountOptions := &fuse.MountOptions{ AllowOther: true, Name: kwfs.String(), Options: []string{"default_permissions"}, } // Empty Options struct avoids setting a global uid/gid override. conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{}) server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions) if err != nil { log.Printf("Mount fail: %v\n", err) return nil, err } go server.Serve() return server, nil }
func (d *driver) client() (*api.Client, error) { return vault.Client(d.token) }