|
- /*
- Copyright 2015 Google LLC
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
- // Package option contains common code for dealing with client options.
- package option
-
- import (
- "fmt"
- "os"
-
- "google.golang.org/api/option"
- "google.golang.org/grpc"
- )
-
- // DefaultClientOptions returns the default client options to use for the
- // client's gRPC connection.
- func DefaultClientOptions(endpoint, scope, userAgent string) ([]option.ClientOption, error) {
- var o []option.ClientOption
- // Check the environment variables for the bigtable emulator.
- // Dial it directly and don't pass any credentials.
- if addr := os.Getenv("BIGTABLE_EMULATOR_HOST"); addr != "" {
- conn, err := grpc.Dial(addr, grpc.WithInsecure())
- if err != nil {
- return nil, fmt.Errorf("emulator grpc.Dial: %v", err)
- }
- o = []option.ClientOption{option.WithGRPCConn(conn)}
- } else {
- o = []option.ClientOption{
- option.WithEndpoint(endpoint),
- option.WithScopes(scope),
- option.WithUserAgent(userAgent),
- }
- }
- return o, nil
- }
|