62 lines
2.3 KiB
Bash
62 lines
2.3 KiB
Bash
|
#
|
||
|
# Google Cloud Platform (gcloud)
|
||
|
#
|
||
|
# gcloud is a tool that provides the primary command-line interface to Google Cloud Platform.
|
||
|
# Link: https://cloud.google.com/sdk/gcloud/
|
||
|
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# Configuration
|
||
|
# ------------------------------------------------------------------------------
|
||
|
|
||
|
SPACESHIP_GCLOUD_SHOW="${SPACESHIP_GCLOUD_SHOW=true}"
|
||
|
SPACESHIP_GCLOUD_ASYNC="${SPACESHIP_GCLOUD_ASYNC=true}"
|
||
|
SPACESHIP_GCLOUD_PREFIX="${SPACESHIP_GCLOUD_PREFIX="using "}"
|
||
|
SPACESHIP_GCLOUD_SUFFIX="${SPACESHIP_GCLOUD_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"}"
|
||
|
SPACESHIP_GCLOUD_SYMBOL="${SPACESHIP_GCLOUD_SYMBOL="☁️ "}"
|
||
|
SPACESHIP_GCLOUD_COLOR="${SPACESHIP_GCLOUD_COLOR="26"}"
|
||
|
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# Section
|
||
|
# ------------------------------------------------------------------------------
|
||
|
|
||
|
# Shows active gcloud configuration.
|
||
|
spaceship_gcloud() {
|
||
|
[[ $SPACESHIP_GCLOUD_SHOW == false ]] && return
|
||
|
|
||
|
# Check if the glcoud-cli is installed
|
||
|
spaceship::exists gcloud || return
|
||
|
|
||
|
# Set the gcloud config base dir
|
||
|
local gcloud_dir=${CLOUDSDK_CONFIG:-"${HOME}/.config/gcloud"}
|
||
|
|
||
|
# Check if there is an active config
|
||
|
[[ -f $gcloud_dir/active_config ]] || return
|
||
|
|
||
|
# Check if there is an active config override
|
||
|
if (( ${+CLOUDSDK_ACTIVE_CONFIG_NAME} )); then
|
||
|
# Uses the current config from the environment variable
|
||
|
local gcloud_active_config=${CLOUDSDK_ACTIVE_CONFIG_NAME}
|
||
|
else
|
||
|
# Reads the current config from the file
|
||
|
local gcloud_active_config=$(head -n1 $gcloud_dir/active_config)
|
||
|
fi
|
||
|
|
||
|
# Check the active config file exists
|
||
|
local gcloud_active_config_file=$gcloud_dir/configurations/config_$gcloud_active_config
|
||
|
[[ -f $gcloud_active_config_file ]] || return
|
||
|
|
||
|
# Reads the current project from the active config file
|
||
|
local gcloud_active_project=$(sed -n 's/project = \(.*\)/\1/p' $gcloud_active_config_file)
|
||
|
|
||
|
# Sets the prompt text to `active-config/active-project`
|
||
|
local gcloud_status="$gcloud_active_config/$gcloud_active_project"
|
||
|
|
||
|
# Show prompt section
|
||
|
spaceship::section \
|
||
|
--color "$SPACESHIP_GCLOUD_COLOR" \
|
||
|
--prefix "$SPACESHIP_GCLOUD_PREFIX" \
|
||
|
--suffix "$SPACESHIP_GCLOUD_SUFFIX" \
|
||
|
--symbol "$SPACESHIP_GCLOUD_SYMBOL" \
|
||
|
"$gcloud_status"
|
||
|
}
|