#!/bin/bash

# Copyright 2025 The Pigweed Authors
#
# 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
#
#     https://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.

if [[ "$1" != "get" ]]; then
    echo "Must call via 'cred_helper get'."
    exit 1
fi

if ! ACCESS_TOKEN=$(gcloud auth print-access-token); then
    echo "Error: Failed to retrieve access token for user: $(whoami)" >&2
    exit 1
fi

cat <<EOF
{
  "headers": {
    "Authorization": ["Bearer ${ACCESS_TOKEN}"]
  }
}
EOF