feat: add salesforce_org prompt segment

Add a new user-defined prompt segment that displays the current
Salesforce CLI default target org. The segment reads target-org
from .sf/config.json, walking up from the current directory to
find the nearest Salesforce DX project root.

The segment is added to all four main config templates (rainbow,
classic, lean, lean-8colors) as a commented-out option in
RIGHT_PROMPT_ELEMENTS, along with the segment function definition
and customization parameters.

Made-with: Cursor
This commit is contained in:
Frank Peleato 2026-03-26 11:52:36 -06:00
parent 604f19a9ea
commit eca86908eb
No known key found for this signature in database
4 changed files with 132 additions and 0 deletions

View File

@ -78,6 +78,7 @@
gcloud # google cloud cli account and project (https://cloud.google.com/) gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
toolbox # toolbox name (https://github.com/containers/toolbox) toolbox # toolbox name (https://github.com/containers/toolbox)
# salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli)
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
@ -1667,6 +1668,38 @@
# Custom prefix. # Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='%248Fat ' # typeset -g POWERLEVEL9K_TIME_PREFIX='%248Fat '
##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]##
# Displays the Salesforce CLI default target org from .sf/config.json.
# Only shown when inside a Salesforce DX project directory (or subdirectory).
function prompt_salesforce_org() {
local sf_config
local dir=$PWD
while [[ $dir != / ]]; do
if [[ -f "$dir/.sf/config.json" ]]; then
sf_config="$dir/.sf/config.json"
break
fi
dir=${dir:h}
done
[[ -z $sf_config ]] && return
local org
org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null)
[[ -z $org ]] && return
p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org"
}
function instant_prompt_salesforce_org() {
prompt_salesforce_org
}
typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255
typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4
# Show salesforce_org only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show salesforce_org.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx'
# Custom icon.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Example of a user-defined prompt segment. Function prompt_example will be called on every # Example of a user-defined prompt segment. Function prompt_example will be called on every
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.

View File

@ -78,6 +78,7 @@
gcloud # google cloud cli account and project (https://cloud.google.com/) gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
toolbox # toolbox name (https://github.com/containers/toolbox) toolbox # toolbox name (https://github.com/containers/toolbox)
# salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli)
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
@ -1642,6 +1643,38 @@
# Custom prefix. # Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]##
# Displays the Salesforce CLI default target org from .sf/config.json.
# Only shown when inside a Salesforce DX project directory (or subdirectory).
function prompt_salesforce_org() {
local sf_config
local dir=$PWD
while [[ $dir != / ]]; do
if [[ -f "$dir/.sf/config.json" ]]; then
sf_config="$dir/.sf/config.json"
break
fi
dir=${dir:h}
done
[[ -z $sf_config ]] && return
local org
org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null)
[[ -z $org ]] && return
p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org"
}
function instant_prompt_salesforce_org() {
prompt_salesforce_org
}
typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255
typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4
# Show salesforce_org only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show salesforce_org.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx'
# Custom icon.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Example of a user-defined prompt segment. Function prompt_example will be called on every # Example of a user-defined prompt segment. Function prompt_example will be called on every
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and green text greeting the user. # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and green text greeting the user.

View File

@ -78,6 +78,7 @@
gcloud # google cloud cli account and project (https://cloud.google.com/) gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
toolbox # toolbox name (https://github.com/containers/toolbox) toolbox # toolbox name (https://github.com/containers/toolbox)
# salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli)
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
@ -1642,6 +1643,38 @@
# Custom prefix. # Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]##
# Displays the Salesforce CLI default target org from .sf/config.json.
# Only shown when inside a Salesforce DX project directory (or subdirectory).
function prompt_salesforce_org() {
local sf_config
local dir=$PWD
while [[ $dir != / ]]; do
if [[ -f "$dir/.sf/config.json" ]]; then
sf_config="$dir/.sf/config.json"
break
fi
dir=${dir:h}
done
[[ -z $sf_config ]] && return
local org
org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null)
[[ -z $org ]] && return
p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org"
}
function instant_prompt_salesforce_org() {
prompt_salesforce_org
}
typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255
typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4
# Show salesforce_org only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show salesforce_org.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx'
# Custom icon.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Example of a user-defined prompt segment. Function prompt_example will be called on every # Example of a user-defined prompt segment. Function prompt_example will be called on every
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.

View File

@ -78,6 +78,7 @@
gcloud # google cloud cli account and project (https://cloud.google.com/) gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
toolbox # toolbox name (https://github.com/containers/toolbox) toolbox # toolbox name (https://github.com/containers/toolbox)
# salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli)
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
@ -1760,6 +1761,38 @@
# Custom prefix. # Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='at ' # typeset -g POWERLEVEL9K_TIME_PREFIX='at '
##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]##
# Displays the Salesforce CLI default target org from .sf/config.json.
# Only shown when inside a Salesforce DX project directory (or subdirectory).
function prompt_salesforce_org() {
local sf_config
local dir=$PWD
while [[ $dir != / ]]; do
if [[ -f "$dir/.sf/config.json" ]]; then
sf_config="$dir/.sf/config.json"
break
fi
dir=${dir:h}
done
[[ -z $sf_config ]] && return
local org
org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null)
[[ -z $org ]] && return
p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org"
}
function instant_prompt_salesforce_org() {
prompt_salesforce_org
}
typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255
typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4
# Show salesforce_org only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show salesforce_org.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx'
# Custom icon.
# typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Example of a user-defined prompt segment. Function prompt_example will be called on every # Example of a user-defined prompt segment. Function prompt_example will be called on every
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background