mirror of https://github.com/gogits/gogs.git
Unknwon
10 years ago
6 changed files with 57 additions and 19 deletions
@ -1,6 +1,58 @@ |
|||||||
|
// Copyright 2014 The Gogs Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
package git |
package git |
||||||
|
|
||||||
|
import ( |
||||||
|
"strings" |
||||||
|
) |
||||||
|
|
||||||
type SubModule struct { |
type SubModule struct { |
||||||
Name string |
Name string |
||||||
Url string |
Url string |
||||||
} |
} |
||||||
|
|
||||||
|
// SubModuleFile represents a file with submodule type.
|
||||||
|
type SubModuleFile struct { |
||||||
|
*Commit |
||||||
|
|
||||||
|
refUrl string |
||||||
|
refId string |
||||||
|
} |
||||||
|
|
||||||
|
func NewSubModuleFile(c *Commit, refUrl, refId string) *SubModuleFile { |
||||||
|
return &SubModuleFile{ |
||||||
|
Commit: c, |
||||||
|
refUrl: refUrl, |
||||||
|
refId: refId, |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// RefUrl guesses and returns reference URL.
|
||||||
|
func (sf *SubModuleFile) RefUrl() string { |
||||||
|
url := strings.TrimSuffix(sf.refUrl, ".git") |
||||||
|
|
||||||
|
// git://xxx/user/repo
|
||||||
|
if strings.HasPrefix(url, "git://") { |
||||||
|
return "http://" + strings.TrimPrefix(url, "git://") |
||||||
|
} |
||||||
|
|
||||||
|
// http[s]://xxx/user/repo
|
||||||
|
if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") { |
||||||
|
return url |
||||||
|
} |
||||||
|
|
||||||
|
// sysuser@xxx:user/repo
|
||||||
|
i := strings.Index(url, "@") |
||||||
|
j := strings.LastIndex(url, ":") |
||||||
|
if i > -1 && j > -1 { |
||||||
|
return "http://" + url[i+1:j] + "/" + url[j+1:] |
||||||
|
} |
||||||
|
return url |
||||||
|
} |
||||||
|
|
||||||
|
// RefId returns reference ID.
|
||||||
|
func (sf *SubModuleFile) RefId() string { |
||||||
|
return sf.refId |
||||||
|
} |
||||||
|
Loading…
Reference in new issue