37 lines
No EOL
984 B
Bash
Executable file
37 lines
No EOL
984 B
Bash
Executable file
#!/bin/bash
|
|
# Script to retrieve PostgreSQL password from 1Password
|
|
|
|
set -e
|
|
|
|
# Default values
|
|
DEFAULT_USER="aprsme"
|
|
DEFAULT_HOST="CM3588"
|
|
DEFAULT_ACCOUNT="YOOATCZZSVGH7AD6VABUVPORLI"
|
|
|
|
# Parse arguments
|
|
USER="${1:-$DEFAULT_USER}"
|
|
HOST="${2:-$DEFAULT_HOST}"
|
|
ACCOUNT="${3:-$DEFAULT_ACCOUNT}"
|
|
|
|
# Item name in 1Password
|
|
ITEM_NAME="PostgreSQL $USER - $HOST"
|
|
|
|
echo "Retrieving password for: $ITEM_NAME"
|
|
|
|
# Get password
|
|
PASSWORD=$(op item get "$ITEM_NAME" --fields password --reveal --account "$ACCOUNT" 2>/dev/null)
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "Password retrieved successfully"
|
|
echo
|
|
echo "Connection details:"
|
|
echo " User: $USER"
|
|
echo " Password: $PASSWORD"
|
|
echo
|
|
echo "URL-encoded password (for connection strings):"
|
|
echo "$PASSWORD" | python3 -c "import urllib.parse; print(urllib.parse.quote(input(), safe=''))"
|
|
else
|
|
echo "Error: Could not retrieve password from 1Password"
|
|
echo "Make sure the item '$ITEM_NAME' exists in your vault"
|
|
exit 1
|
|
fi |