Example #1
0
func (l *Loop) runLoop(fs filesystem.Filespace, subPath string) error {
	list, err := fs.ReadDir(subPath)
	if err != nil {
		return err
	}
	for _, dir := range list {
		if dir.Name() == "." || dir.Name() == ".." {
			continue
		}
		newSubPath := subPath + dir.Name()
		if l.Filter != nil && !l.filter(fs, newSubPath, dir) {
			continue
		}
		if dir.IsDir() {
			if l.onDir != nil {
				if err = l.onDir(fs, newSubPath, dir); err != nil {
					return err
				}
			}
			if err = l.runLoop(fs, newSubPath+"/"); err != nil {
				return err
			}
		} else {
			if err = l.onFile(fs, newSubPath, dir); err != nil {
				return err
			}
		}
	}
	return nil
}
Example #2
0
// ReadJSON read data from json file to object
func ReadJSON(fs filesystem.Filespace, src string, object interface{}) error {
	jsonb, err := fs.ReadFile(src)
	if err != nil {
		return err
	}
	return varutil.ObjectFromJSON(object, string(jsonb))
}
Example #3
0
// WriteJSON write data from object to json file
func WriteJSON(fs filesystem.Filespace, path string, object interface{}) error {
	json, err := varutil.ObjectToJSON(object)
	if err != nil {
		return err
	}
	dir := filepath.Dir(path)
	if !fs.IsDir(dir) {
		if err := fs.MkdirAll(dir, 0777); err != nil {
			return err
		}
	}
	return fs.WriteFile(path, []byte(json), 0777)
}