code: func DirSize(path string) (int64, error) {
  	seenInode := make(map[uint64]struct{})
  
  	if _, err := os.Stat(path); err == nil {
  		var sz int64
  		err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
  			if hasHardLinks(info) {
  				ino := getInode(info)
  				if _, ok := seenInode[ino]; !ok {
  					seenInode[ino] = struct{}{}
  					sz += info.Size()
  				}
  			} else {
  				sz += info.Size()
  			}
  			return err
  		})
  		return sz, err
  	}
  
  	return 0, nil
  }
docs: // DirSize takes a path and returns its size in bytes