func ReadCharmArchive(path string) (*CharmArchive, error) {
	a, err := readCharmArchive(newZipOpenerFromPath(path))
	if err != nil {
		return nil, err
	}
	a.Path = path
	return a, nil
}
// ReadCharmArchive returns a CharmArchive for the charm in path.
ReadCharmArchive returns a CharmArchive for the charm in path.
// ReadCharmArchive returns a CharmArchive for the charm in path .
func ReadCharmArchive(path string) (*CharmArchive, error) {
	a, err := readCharmArchive(newZipOpenerFromPath(path))
	if err != nil {
		return nil, err
	}
	a.Path = path
	return a, nil
}
func ReadCharmArchive ( path string ) ( * CharmArchive , error ) { a , err := readCharmArchive ( newZipOpenerFromPath ( path ) ) if err != nil { return nil , err } a . Path = path return a , nil }
ReadCharmArchive returns a CharmArchive for the charm in path.
ReadCharmArchive returns a CharmArchive for the charm in path .