func fetchBrokerpak(src, dest string) error {
	execWd := filepath.Dir(os.Args[0])
	execDir, err := filepath.Abs(execWd)
	if err != nil {
		return fmt.Errorf("couldn't turn dir %q into abs path: %v", execWd, err)
	}
	client := newFileGetterClient(src, dest)
	client.Getters["gs"] = &gsGetter{}
	client.Pwd = execDir
	return client.Get()
}
fetchBrokerpak downloads a local or remote brokerpak; brokerpaks can be
fetched remotely using the gs:// prefix which will load them from a
Cloud Storage bucket with the broker's credentials.
Relative paths are resolved relative to the executable.
package brokerpak
import (
	"context"
	"errors"
	"fmt"
	"net/url"
	"os"
	"path/filepath"
	"strings"
	"time"
	"cloud.google.com/go/storage"
	"github.com/GoogleCloudPlatform/gcp-service-broker/utils"
	"github.com/GoogleCloudPlatform/gcp-service-broker/utils/stream"
	getter "github.com/hashicorp/go-getter"
	"golang.org/x/oauth2/google"
	"google.golang.org/api/option"
)
func fetchArchive(src, dest string) error {
	return newFileGetterClient(src, dest).Get()
}