code: func readIgnoreFile(fs billy.Filesystem, path []string, ignoreFile string) (ps []Pattern, err error) {
  	f, err := fs.Open(fs.Join(append(path, ignoreFile)...))
  	if err == nil {
  		defer f.Close()
  
  		if data, err := ioutil.ReadAll(f); err == nil {
  			for _, s := range strings.Split(string(data), eol) {
  				if !strings.HasPrefix(s, commentPrefix) && len(strings.TrimSpace(s)) > 0 {
  					ps = append(ps, ParsePattern(s, path))
  				}
  			}
  		}
  	} else if !os.IsNotExist(err) {
  		return nil, err
  	}
  
  	return
  }
docs: // readIgnoreFile reads a specific git ignore file.