func walkDirectory()

in lib/store/utils.go [55:80]


func walkDirectory(rootDir string, depth int, f func(string) error) error {
	if depth == 0 {
		empty, err := osutil.IsEmpty(rootDir)
		if err != nil {
			return err
		}
		if !empty {
			if err = f(rootDir); err != nil {
				return err
			}
		}
	} else {
		infos, err := ioutil.ReadDir(rootDir)
		if err != nil {
			return err
		}
		for _, info := range infos {
			if info.IsDir() {
				if err := walkDirectory(path.Join(rootDir, info.Name()), depth-1, f); err != nil {
					return err
				}
			}
		}
	}
	return nil
}