mirror of
https://github.com/tj/git-extras.git
synced 2026-09-12 00:16:27 -04:00
feat: implement git-browse-ci
This commit is contained in:
parent
42458d838b
commit
f513f58d9e
64
bin/git-browse-ci
Executable file
64
bin/git-browse-ci
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
#!/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
|
||||
|
||||
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
|
||||
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
|
||||
Loading…
Reference in a new issue