mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
66 lines
1.2 KiB
Bash
Executable file
66 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -e -o pipefail
|
|
if [[ $1 == "" ]]
|
|
then
|
|
branch=$(git rev-parse --abbrev-ref HEAD &> /dev/null)
|
|
remote=$(git config branch."${branch}".remote || echo "origin")
|
|
else
|
|
remote=$1
|
|
fi
|
|
|
|
if [[ -z $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
|
|
|
|
if [[ $url =~ github ]]
|
|
then
|
|
ci_url=${url}/actions
|
|
elif [[ $url =~ gitlab ]]
|
|
then
|
|
ci_url=${url}/-/pipelines
|
|
elif [[ $url =~ bitbucket ]]
|
|
then
|
|
ci_url=${url}/addon/pipelines/home
|
|
fi
|
|
case "$OSTYPE" in
|
|
darwin*)
|
|
# MacOS
|
|
open "${ci_url}"
|
|
;;
|
|
msys)
|
|
# Git-Bash on Windows
|
|
start "${ci_url}"
|
|
;;
|
|
linux*)
|
|
# Handle WSL on Windows
|
|
if uname -a | grep -i -q Microsoft && command -v powershell.exe
|
|
then
|
|
powershell.exe -NoProfile start "${ci_url}"
|
|
else
|
|
xdg-open "${ci_url}"
|
|
fi
|
|
;;
|
|
*)
|
|
# fall back to xdg-open for BSDs, etc.
|
|
xdg-open "${ci_url}"
|
|
;;
|
|
esac
|