锻炼吃饭的家伙

Mac OS X Shell 实战之SourceTree自定义操

2017-09-19  本文已影响113人  十一岁的加重

场景:在公司用的是SourceTree,会有一个自己的代码仓库,还有主的代码仓库,
经常会用到自定义操作,当然关于打开工程 ,打开项目这个自定义操作之前是有人写了的,我主要是根据自己的情况来写了两个。
我们在主仓库上会有一个code Review的过程,
我们在自己的仓库上会有一个提交merge_requests到主仓库让别人code Review的操作,每次打开浏览器太麻烦了,当然有些人书签 也没存,已经习惯了这些繁琐的操作,于是我就边上班写代码边抽时间写了这个脚本,第一次写好紧张,查了好多资料,终于成功,当然还有些还待优化,比如用Chrome打开地址啊,有些人可能装的是Firefox这个得处理,如果有时间

image.png

#!/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

上一篇下一篇

猜你喜欢

热点阅读