code: func findAssets(pkgDir string, exts []string) (assetMap, error) {
  	assets := assetMap{}
  
  	err := filepath.Walk(pkgDir, func(path string, info os.FileInfo, err error) error {
  		if err != nil || info.IsDir() || !isAssetFile(path, exts) {
  			return err
  		}
  		rel, err := filepath.Rel(pkgDir, path)
  		if err != nil {
  			return err
  		}
  		blob, err := ioutil.ReadFile(path)
  		if err != nil {
  			return err
  		}
  		assets[filepath.ToSlash(rel)] = asset{
  			Path: filepath.ToSlash(rel),
  			Body: blob,
  		}
  		return nil
  	})
  
  	if err != nil {
  		return nil, err
  	}
  	return assets, nil
  }
docs: // findAssets recursively scans pkgDir for asset files.