func resolveRelativeCharmPath(basePath, charmURL string) (string, error) {
	// We don't need to do anything for non-relative paths.
	if !strings.HasPrefix(charmURL, ".") {
		return charmURL, nil
	}

	return filepath.Abs(filepath.Join(basePath, charmURL))
}
// resolveRelativeCharmPath resolves charmURL into an absolute path relative
// to basePath if charmURL contains a relative path. Otherwise, the function
// returns back the original charmURL.
//
// Note: this function will only resolve paths. It will not check whether the
// referenced charm path actually exists. That is the job of the bundle
// validator.
resolveRelativeCharmPath resolves charmURL into an absolute path relative
to basePath if charmURL contains a relative path. Otherwise, the function
returns back the original charmURL.

this function will only resolve paths. It will not check whether the
referenced charm path actually exists. That is the job of the bundle
validator.
// resolveRelativeCharmPath resolves charmURL into an absolute path relative // to basePath if charmURL contains a relative path . Otherwise the function // returns back the original charmURL . // // Note : this function will only resolve paths . It will not check whether the // referenced charm path actually exists . That is the job of the bundle // validator .
func resolveRelativeCharmPath(basePath, charmURL string) (string, error) {
	if !strings.HasPrefix(charmURL, ".") {
		return charmURL, nil
	}
	return filepath.Abs(filepath.Join(basePath, charmURL))
}
func resolveRelativeCharmPath ( basePath , charmURL string ) ( string , error ) { if ! strings . HasPrefix ( charmURL , " " ) { return charmURL , nil } return filepath . Abs ( filepath . Join ( basePath , charmURL ) ) }
resolveRelativeCharmPath resolves charmURL into an absolute path relative
to basePath if charmURL contains a relative path.
resolveRelativeCharmPath resolves charmURL into an absolute path relative to basePath if charmURL contains a relative path .
// We don't need to do anything for non-relative paths.