Compare commits

...

3 Commits

Author SHA1 Message Date
Jason Swank
fd47330e6d vim: add ctrl-b to create backticks 2026-01-13 13:05:08 -05:00
Jason Swank
9ec3e1124b zsh: add aws-get-bedrock-profile 2026-01-13 13:00:39 -05:00
Jason Swank
c36d1fa1f8 add aws-sso-login 2026-01-12 23:29:03 -05:00
5 changed files with 53 additions and 3 deletions

View File

@@ -69,6 +69,9 @@ au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 wra
" typing idate inserts the current date
iab idate <c-r>=strftime("%Y-%m-%d")<cr>
" insert triple backticks for markdown code blocks with Ctrl-b
inoremap <C-b> ```<CR>```<Esc>O
" use \ toc to insert a table of contents for markdown from the current line to EOF
" nmap <leader>toc <cmd>.put =execute('.,$write !gh-md-toc --hide-header --hide-footer')<cr>
nmap <leader>toc :put =system('gh-md-toc --hide-header --hide-footer --indent=4', getline('.', '$'))<cr>

View File

@@ -0,0 +1,17 @@
aws-get-bedrock-profile () {
profile_arn=$(aws bedrock list-inference-profiles \
| jq -r '.inferenceProfileSummaries
| map(select(.inferenceProfileId | startswith("us.")))
| sort_by(.inferenceProfileName)
| .[]
| [.inferenceProfileArn, .inferenceProfileName, .description]
| @tsv' \
| fzf \
--header="$(printf '%-30s\t%s\n' 'NAME' 'DESCRIPTION')" \
--no-preview \
--delimiter='\t' \
--with-nth=2,3 \
| awk '{print $1}')
[[ -z "$profile_arn" ]] && return 1
echo "$profile_arn"
}

View File

@@ -1,3 +1,3 @@
aws-logout() {
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_ENVIRONMENT
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_ENVIRONMENT AWS_PROFILE
}

View File

@@ -0,0 +1,30 @@
aws-sso-login() {
local profile="${1:-$AWS_PROFILE}"
if [[ -z "$profile" ]]; then
profile=$(aws configure list-profiles \
| fzf --height 40% --reverse --no-preview)
fi
if [[ -z "$profile" ]]; then
echo "Error: No profile provided or selected." >&2
return 1
fi
# Validate existing session; login if expired or missing
if ! aws sts get-caller-identity --profile "$profile" &>/dev/null; then
aws sso login --use-device-code --profile "$profile" || return 1
fi
# Export credentials to environment for third-party tools
local creds
creds=$(aws configure export-credentials --profile "$profile" --format env)
if [[ $? -eq 0 ]]; then
eval "$creds"
export AWS_PROFILE="$profile"
# echo "Environment configured for profile: $profile"
else
echo "Error: Failed to export credentials." >&2
return 1
fi
}

View File

@@ -48,9 +48,9 @@ zstyle ':vcs_info:git*' actionformats '%%S%r%%s:%{$fg[red]%}%b:%a%{$reset_color%
function set_prompt() {
if [[ -n "$AWS_ENVIRONMENT" ]]; then
if [[ -n "$AWS_PROFILE" ]]; then
aws_prompt="
%S%B$AWS_ENVIRONMENT%b%s
%S%B$AWS_PROFILE%b%s
"
else
aws_prompt=""