场景:在公司用的是SourceTree
,会有一个自己的代码仓库,还有主的代码仓库,
经常会用到自定义操作,当然关于打开工程 ,打开项目这个自定义操作之前是有人写了的,我主要是根据自己的情况来写了两个。
我们在主仓库上会有一个code Review
的过程,
我们在自己的仓库上会有一个提交merge_requests
到主仓库让别人code Review
的操作,每次打开浏览器太麻烦了,当然有些人书签 也没存,已经习惯了这些繁琐的操作,于是我就边上班写代码边抽时间写了这个脚本,第一次写好紧张,查了好多资料,终于成功,当然还有些还待优化,比如用Chrome
打开地址啊,有些人可能装的是Firefox
这个得处理,如果有时间
#!/bin/bash
# 这两个是传进来的参数
如上图
repoPath=$1
isDoNewImerge_requestsAction=$2
for remoteRepoName in $(git remote); do
remoteUrls="git remote get-url --push ""${remoteRepoName}"
for remoteUrl in $(${remoteUrls}); do
httpStr="http"
if [[ $remoteUrl == *$httpStr* ]]
then #"包含http"
test2=${remoteUrl%".git"}
httpStr="mobile"
if [[ $test2 == *$httpStr* ]]
then #包含mobile,进行merge_requests
#echo ${test2}
if [ "$isDoNewImerge_requestsAction" != "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test2"/merge_requests"
fi
else #不包含mobile,进行/merge_requests/new
echo ${test2}
#isNewImerge_requests
if [ "$isDoNewImerge_requestsAction" == "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test2"/merge_requests/new"
fi
fi
else #不包含http
test1=${remoteUrl#"git@git."}
test2=${test1%".git"}
test3=${test2/://}
test4=${test3/这里是我们公司的内部gitLab服务器的域名/http://这里是我们公司的内部gitLab服务器的IP地址}
test5=${test4/git@这里是我们公司的内部gitLab服务器的IP地址/http://这里是我们公司的内部gitLab服务器的IP地址}
echo ${test5}
httpStr="mobile"
if [[ $test5 == *$httpStr* ]]
then #包含mobile,进行merge_requests
echo ${test5}
if [ "$isDoNewImerge_requestsAction" != "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test5"/merge_requests"
fi
else #不包含mobile,进行/merge_requests/new
if [ "$isDoNewImerge_requestsAction" = "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test5"/merge_requests/new"
fi
fi
fi
done
done
1、打开工作空间
/Users/mac/Documents/我的坚果云/openXproj.sh $REPO xcworkspace
2、打开工程
/Users/mac/Documents/我的坚果云/openXproj.sh $REPO xcodeproj
3、提代码到主仓库
/Users/mac/Documents/我的坚果云/testShell.sh $REPO isNewImerge_requests
4、主仓库CodeReview
/Users/mac/Documents/我的坚果云/testShell.sh $REPO codeReview