@@ -14,62 +14,104 @@ import java.text.SimpleDateFormat
1414 */
1515class GitUtils {
1616
17- private static String sCurBranchName ;
17+ private static Project rootProject ;
1818
1919 static void init (Gradle gradle ) {
20- gradle. rootProject(new Action<Project > () {
21- @Override
22- void execute (Project project ) {
23- sCurBranchName = getGitBranch()
24- addGitPushTask(project)
25- addGitPushAndMerge2MasterTask(project)
26- addGitNewBranchTask(project)
20+ rootProject = gradle. rootProject
21+ addGitHelpTask()
22+ // gradle.rootProject(new Action<Project>() {
23+ // @Override
24+ // void execute(Project project) {
25+ // addGitHelpTask()
26+ // }
27+ // })
28+ }
29+
30+ static def addGitHelpTask () {
31+ rootProject. task(" gitHelp" ). doLast {
32+ def commands = [
33+ " ############## input command code #################" ,
34+ " # [1] Git Push #" ,
35+ " # [2] Git Push And Merge to Master #" ,
36+ " # [3] Git New Branch #" ,
37+ " # [0] exit #" ,
38+ " ###################################################" ,
39+ ]
40+ String commandTips = String . join(System . getProperty(" line.separator" ), commands)
41+ while (true ) {
42+ GLog . l(commandTips)
43+ Scanner scanner = new Scanner (System . in )
44+ def input = scanner. next()
45+ GLog . l(input)
46+ switch (input) {
47+ case " 1" :
48+ gitPush()
49+ break
50+ case " 2" :
51+ gitPushAndMerge2Master()
52+ break
53+ case " 3" :
54+ gitNewBranch()
55+ break
56+ case " 0" :
57+ return
58+ }
2759 }
28- })
60+ }
2961 }
3062
31- static def getGitBranch () {
32- return ShellUtils . execCmd(' git symbolic-ref --short -q HEAD' ). successMsg
63+ static void gitPush () {
64+ String branchName = getGitBranch()
65+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat (" MM/dd" )
66+ String date = simpleDateFormat. format(new Date ())
67+ exeCmd(
68+ " git add -A" ,
69+ " git commit -m \" see $date log\" " ,
70+ " git push origin $branchName "
71+ )
3372 }
3473
35- static void addGitPushTask (Project project ) {
36- project. task(" gitPush" ). doLast {
37- SimpleDateFormat simpleDateFormat = new SimpleDateFormat (" MM/dd" )
38- String date = simpleDateFormat. format(new Date ())
39- GLog . d(ShellUtils . execCmd([
40- " git add -A" ,
41- " git commit -m \" see $date log\" " ,
42- " git push origin $sCurBranchName "
43- ] as String []))
44- }
74+ static void gitPushAndMerge2Master () {
75+ String branchName = getGitBranch()
76+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat (" MM/dd" )
77+ String date = simpleDateFormat. format(new Date ())
78+ exeCmd(
79+ " git add -A" ,
80+ " git commit -m \" see $date log\" " ,
81+ " git push origin $branchName " ,
82+ " git checkout master" ,
83+ " git merge $branchName " ,
84+ " git push origin master" ,
85+ " git checkout $branchName "
86+ )
4587 }
4688
47- static void addGitPushAndMerge2MasterTask (Project project ) {
48- project. task(" gitPushAndMerge2Master" ). doLast {
49- SimpleDateFormat simpleDateFormat = new SimpleDateFormat (" MM/dd" )
50- String date = simpleDateFormat. format(new Date ())
51- GLog . d(ShellUtils . execCmd([
52- " git add -A" ,
53- " git commit -m \" see $date log\" " ,
54- " git push origin $sCurBranchName " ,
55- " git checkout master" ,
56- " git merge $sCurBranchName " ,
57- " git push origin master" ,
58- " git checkout $sCurBranchName " ,
59- ] as String []))
60- }
89+ static void gitNewBranch () {
90+ exeCmd(
91+ " git checkout master" ,
92+ " git checkout -b ${ Config.versionName} " ,
93+ " git push origin ${ Config.versionName} :${ Config.versionName} " ,
94+ )
6195 }
6296
63- static void addGitNewBranchTask (Project project ) {
64- project. task(" gitNewBranch" ). doLast {
65- GLog . d(ShellUtils . execCmd([
66- " git checkout master" ,
67- " git checkout -b ${ Config.versionName} " ,
68- " git push origin ${ Config.versionName} :${ Config.versionName} " ,
69- ] as String []))
97+ private static def getGitBranch () {
98+ return exeCmd(" git symbolic-ref --short -q HEAD" )
99+ }
100+
101+ private static def exeCmd (String ... cmds ) {
102+ String output = " "
103+ for (def cmd in cmds) {
104+ output = _exeCmd(cmd)
70105 }
106+ return output
107+ }
108+
109+ private static def _exeCmd (String cmd ) {
110+ def output = new StringBuilder ()
111+ GLog . l(" Execute command: ${ cmd} " )
112+ def cmdResult = ShellUtils . execCmd(cmd)
113+ GLog . l(" $cmdResult " )
114+ return cmdResult. successMsg
71115 }
72116}
73- // ./gradlew gitPush
74- // ./gradlew gitPushAndMerge2Master
75- // ./gradlew gitNewBranch
117+ // ./gradlew gitHelp
0 commit comments