32 lines
933 B
Bash
Executable file
32 lines
933 B
Bash
Executable file
#!/bin/bash
|
|
|
|
OLD_URL=$(git remote get-url origin)
|
|
if [[ $OLD_URL == "https://github.com"* ]]; then
|
|
# Modified sed pattern to better handle GitHub URLs
|
|
USER_REPO=$(echo $OLD_URL | sed -n 's|https://github.com/\([^/]*/[^/]*\)|\1|p')
|
|
if [ -z "$USER_REPO" ]; then
|
|
echo "Error: Could not extract user/repo from URL: $OLD_URL"
|
|
exit 1
|
|
fi
|
|
|
|
# Remove any trailing .git if present and add it back consistently
|
|
USER_REPO=$(echo $USER_REPO | sed 's/\.git$//')
|
|
NEW_URL="git@github.com:${USER_REPO}.git"
|
|
|
|
echo "Old URL: $OLD_URL"
|
|
echo "New URL: $NEW_URL"
|
|
|
|
# Update the remote URL to use SSH
|
|
git remote set-url origin "$NEW_URL"
|
|
|
|
# Verify the change
|
|
CURRENT_URL=$(git remote get-url origin)
|
|
if [ "$CURRENT_URL" = "$NEW_URL" ]; then
|
|
echo "Successfully updated remote URL to use SSH."
|
|
else
|
|
echo "Error: Failed to update remote URL."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Remote URL is already using SSH or a different protocol: $OLD_URL"
|
|
fi
|