Skip to content

Instantly share code, notes, and snippets.

@janlegner
Created January 14, 2022 16:05
Show Gist options
  • Save janlegner/67e5e84ef18f7c98c51f903881d94621 to your computer and use it in GitHub Desktop.
Save janlegner/67e5e84ef18f7c98c51f903881d94621 to your computer and use it in GitHub Desktop.
Simple identity manager for solana.
#!/bin/bash
SOLANA_IDS_DIRECTORY="$HOME/.config/solana"
CURRENT_ID="$SOLANA_IDS_DIRECTORY/id.json"
CURRENT_ID_BACKUP="$CURRENT_ID.bk"
echo "Current identity: $(solana address)"
echo
if [[ -f "$CURRENT_ID" ]]
then
cp "$CURRENT_ID" "$CURRENT_ID_BACKUP"
fi
ID_FILES_STR=$(find "$SOLANA_IDS_DIRECTORY" -type f -name '*.json')
IFS=$'\n' read -d '' -r -a ID_FILES <<< "$ID_FILES_STR"
for i in ${!ID_FILES[@]}; do
printf "%3d) %s %s\n" $((i+1)) "$(solana address -k "${ID_FILES[i]:- }")" "${ID_FILES[i]:- }"
done
echo
read -rp "Which identity do you choose?: " CHOSEN_ID
if [[ -z "$CHOSEN_ID" ]] || [[ "$CHOSEN_ID" != *[[:digit:]]* ]] || (( $CHOSEN_ID < 1 )) || (( $CHOSEN_ID > ${#ID_FILES[@]} ))
then
echo "Invalid input, aborting."
exit 1
fi
cp "$CURRENT_ID" "$CURRENT_ID_BACKUP"
cp "${ID_FILES[$(($CHOSEN_ID - 1))]}" "$CURRENT_ID"
echo
echo "Identity changed: $(solana address)"
@janlegner
Copy link
Author

janlegner commented Jan 15, 2022

Install

mkdir -p "~/.local/bin"
wget "https://gist.githubusercontent.com/janlegner/67e5e84ef18f7c98c51f903881d94621/raw/25e925e49041cc3f10aeebd6b96add00dff3905c/solana-id" -O "~/.local/bin/solana-id"
chmod +x "~/.local/bin/solana-id"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment