func (gpf *GoPathFs) OnUnmount() {
	notify.Stop(gpf.notifyCh)
}
OnUnmount overwrites the parent's OnUnmount method.
package gopathfs
import (
	"fmt"
	"log"
	"os"
	"path/filepath"
	"regexp"
	"strings"
	"github.com/hanwen/go-fuse/fuse"
	"github.com/hanwen/go-fuse/fuse/pathfs"
	"github.com/linuxerwang/gobazel/conf"
	"github.com/linuxerwang/gobazel/exec"
	"github.com/rjeczalik/notify"
)
var (
	pathSeparator = string(os.PathSeparator)
)
type Dirs struct {
	Workspace string
	GobzlConf string
	GobzlPid  string
	BinDir    string
	PkgDir    string
	SrcDir    string
	GoSDKDir  string
}
type GoPathFs struct {
	pathfs.FileSystem
	debug         bool
	dirs          *Dirs
	cfg           *conf.GobazelConf
	ignoreRegexes []*regexp.Regexp
	notifyCh      chan notify.EventInfo
}
func (gpf *GoPathFs) Access(name string, mode uint32, context *fuse.Context) (code fuse.Status) {
	return fuse.OK
}
func (gpf *GoPathFs) OnMount(nodeFs *pathfs.PathNodeFs) {
	if err := notify.Watch(filepath.Join(gpf.dirs.Workspace, "..."), gpf.notifyCh, notify.All); err != nil {
		log.Fatal(err)
	}
	go func() {
		for ei := range gpf.notifyCh {
			path := ei.Path()[len(gpf.dirs.Workspace+pathSeparator):]
			gpf.notifyFileChange(nodeFs, path)
		}
	}()
}