|
1 | 1 | package main |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "bytes" |
5 | 4 | "fmt" |
6 | 5 | "io" |
7 | 6 | "io/ioutil" |
@@ -96,35 +95,26 @@ func convertToGitHub() bool { |
96 | 95 | } |
97 | 96 |
|
98 | 97 | func convertHelper(oldPrefixValue, newPrefixValue string) bool { |
99 | | - fi, err := os.Open(path.Join(".git", "config")) |
100 | | - checkErr(err, "This is not a git path! Cannot push!", 1) |
101 | | - defer fi.Close() |
102 | | - |
103 | | - gitConfigByte, err := ioutil.ReadFile(path.Join(".git", "config")) |
104 | | - checkErr(err, "Cannot read .git config file!", 3) |
105 | | - gitConfig := string(gitConfigByte) |
106 | | - |
107 | | - isReplaceDo := false |
108 | | - sb := new(bytes.Buffer) |
109 | | - iniArray := strings.Split(gitConfig, "\n") |
110 | | - |
111 | | - iniNewStr := "" |
112 | | - |
113 | | - for i := range iniArray { |
114 | | - if strings.Trim(iniArray[i], "") == "" { |
115 | | - // drop useless lines |
116 | | - // sb.WriteString(iniArray[i] + "\n") |
117 | | - continue |
118 | | - } |
119 | | - iniNewStr = strings.Replace(iniArray[i], oldPrefixValue, newPrefixValue, 1) |
120 | | - if iniArray[i] != iniNewStr { |
121 | | - iniArray[i] = iniNewStr |
122 | | - isReplaceDo = true |
| 98 | + cmd := exec.Command("git", "remote", "-v") |
| 99 | + buf, err := cmd.Output() |
| 100 | + sBuf := string(buf) |
| 101 | + originUrl := "" |
| 102 | + checkErr(err, "Convert failed.", 8) |
| 103 | + tmp := strings.Split(strings.Replace(strings.Replace(sBuf, "\t", " ", -1), " ", " ", -1), " ") |
| 104 | + for i := range tmp { |
| 105 | + if strings.HasPrefix(tmp[i], oldPrefixValue) { |
| 106 | + originUrl = tmp[i] |
| 107 | + break |
123 | 108 | } |
124 | | - sb.WriteString(iniArray[i] + "\n") |
125 | 109 | } |
126 | | - fi.Write(sb.Bytes()) |
127 | | - return isReplaceDo |
| 110 | + if originUrl == "" { |
| 111 | + return false |
| 112 | + } |
| 113 | + fmt.Println(originUrl) |
| 114 | + cmd = exec.Command("git", "remote", "set-url", "origin", strings.Replace(originUrl, oldPrefixValue, newPrefixValue, 1)) |
| 115 | + _, err = cmd.Output() |
| 116 | + checkErr(err, "Convert failed.", 8) |
| 117 | + return true |
128 | 118 | } |
129 | 119 |
|
130 | 120 | func checkErr(err error, msg string, exitCode int) { |
|
0 commit comments