mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
55 lines
1,019 B
Bash
Executable file
55 lines
1,019 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if [[ $1 == "" ]]
|
|
then
|
|
branch=$(git rev-parse --abbrev-ref HEAD 2&> /dev/null)
|
|
remote=$(git config branch."${branch}".remote || echo "origin")
|
|
else
|
|
remote=$1
|
|
fi
|
|
|
|
if [[ $remote == "" ]]
|
|
then
|
|
echo "Remote not found"
|
|
exit 1
|
|
fi
|
|
|
|
remote_url=$(git remote get-url $remote)
|
|
|
|
if [[ $? -ne 0 ]]
|
|
then
|
|
exit $?
|
|
fi
|
|
|
|
if [[ $remote_url = git@* ]]
|
|
then
|
|
url=$(echo $remote_url | sed -E -e 's/:/\//' -e 's/\.git$//' -e 's/.*@(.*)/http:\/\/\1/')
|
|
elif [[ $remote_url = http* ]]
|
|
then
|
|
url=${remote_url%.git}
|
|
fi
|
|
|
|
case "$OSTYPE" in
|
|
darwin*)
|
|
# MacOS
|
|
open $url
|
|
;;
|
|
msys)
|
|
# Git-Bash on Windows
|
|
start $url
|
|
;;
|
|
linux*)
|
|
# Handle WSL on Windows
|
|
if uname -a | grep -i -q Microsoft && command -v powershell.exe
|
|
then
|
|
powershell.exe -NoProfile start $url
|
|
else
|
|
xdg-open $url
|
|
fi
|
|
;;
|
|
*)
|
|
# fall back to xdg-open for BSDs, etc.
|
|
xdg-open $url
|
|
;;
|
|
esac
|