場(chǎng)景:在公司用的是SourceTree,會(huì)有一個(gè)自己的代碼倉(cāng)庫(kù),還有主的代碼倉(cāng)庫(kù),
經(jīng)常會(huì)用到自定義操作,當(dāng)然關(guān)于打開(kāi)工程 ,打開(kāi)項(xiàng)目這個(gè)自定義操作之前是有人寫(xiě)了的,我主要是根據(jù)自己的情況來(lái)寫(xiě)了兩個(gè)。
我們?cè)谥鱾}(cāng)庫(kù)上會(huì)有一個(gè)code Review的過(guò)程,
我們?cè)谧约旱膫}(cāng)庫(kù)上會(huì)有一個(gè)提交merge_requests到主倉(cāng)庫(kù)讓別人code Review的操作,每次打開(kāi)瀏覽器太麻煩了,當(dāng)然有些人書(shū)簽 也沒(méi)存,已經(jīng)習(xí)慣了這些繁瑣的操作,于是我就邊上班寫(xiě)代碼邊抽時(shí)間寫(xiě)了這個(gè)腳本,第一次寫(xiě)好緊張,查了好多資料,終于成功,當(dāng)然還有些還待優(yōu)化,比如用Chrome打開(kāi)地址啊,有些人可能裝的是Firefox這個(gè)得處理,如果有時(shí)間

#!/bin/bash
# 這兩個(gè)是傳進(jìn)來(lái)的參數(shù)
如上圖
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,進(jìn)行merge_requests
#echo ${test2}
if [ "$isDoNewImerge_requestsAction" != "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test2"/merge_requests"
fi
else #不包含mobile,進(jìn)行/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/這里是我們公司的內(nèi)部gitLab服務(wù)器的域名/http://這里是我們公司的內(nèi)部gitLab服務(wù)器的IP地址}
test5=${test4/git@這里是我們公司的內(nèi)部gitLab服務(wù)器的IP地址/http://這里是我們公司的內(nèi)部gitLab服務(wù)器的IP地址}
echo ${test5}
httpStr="mobile"
if [[ $test5 == *$httpStr* ]]
then #包含mobile,進(jìn)行merge_requests
echo ${test5}
if [ "$isDoNewImerge_requestsAction" != "isNewImerge_requests" ]; then
/usr/bin/open -a "/Applications/Google Chrome.app" $test5"/merge_requests"
fi
else #不包含mobile,進(jìn)行/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、打開(kāi)工作空間
/Users/mac/Documents/我的堅(jiān)果云/openXproj.sh $REPO xcworkspace
2、打開(kāi)工程
/Users/mac/Documents/我的堅(jiān)果云/openXproj.sh $REPO xcodeproj
3、提代碼到主倉(cāng)庫(kù)
/Users/mac/Documents/我的堅(jiān)果云/testShell.sh $REPO isNewImerge_requests
4、主倉(cāng)庫(kù)CodeReview
/Users/mac/Documents/我的堅(jiān)果云/testShell.sh $REPO codeReview