code: func extractArchive(i interface{}, src io.Reader, dst string, opts *archive.TarOptions) error {
  	if ea, ok := i.(extractor); ok {
  		return ea.ExtractArchive(src, dst, opts)
  	}
  	return chrootarchive.Untar(src, dst, opts)
  }
docs: // helper functions to extract or archive