MCPcopy Index your code
hub / github.com/aptly-dev/aptly / ParsePPA

Function ParsePPA

deb/ppa.go:15–50  ·  view source on GitHub ↗

ParsePPA converts ppa URL like ppa:user/ppa-name to full HTTP url

(ppaURL string, config *utils.ConfigStructure)

Source from the content-addressed store, hash-verified

13
14// ParsePPA converts ppa URL like ppa:user/ppa-name to full HTTP url
15func ParsePPA(ppaURL string, config *utils.ConfigStructure) (url string, distribution string, components []string, err error) {
16 matches := ppaRegexp.FindStringSubmatch(ppaURL)
17 if matches == nil {
18 err = fmt.Errorf("unable to parse ppa URL: %v", ppaURL)
19 return
20 }
21
22 distributorID := config.PpaDistributorID
23 if distributorID == "" {
24 distributorID, err = getDistributorID()
25 if err != nil {
26 err = fmt.Errorf("unable to figure out Distributor ID: %s, please set config option ppaDistributorID", err)
27 return
28 }
29 }
30
31 baseurl := config.PpaBaseURL
32 if baseurl == "" {
33 baseurl = "http://ppa.launchpad.net"
34 }
35
36 codename := config.PpaCodename
37 if codename == "" {
38 codename, err = getCodename()
39 if err != nil {
40 err = fmt.Errorf("unable to figure out Codename: %s, please set config option ppaCodename", err)
41 return
42 }
43 }
44
45 distribution = codename
46 components = []string{"main"}
47 url = fmt.Sprintf("%s/%s/%s/%s", baseurl, matches[1], matches[2], distributorID)
48
49 return
50}
51
52func getCodename() (string, error) {
53 out, err := exec.Command("lsb_release", "-sc").Output()

Callers 3

aptlyMirrorCreateFunction · 0.92
apiMirrorsCreateFunction · 0.92
TestParsePPAMethod · 0.85

Calls 2

getDistributorIDFunction · 0.85
getCodenameFunction · 0.85

Tested by 1

TestParsePPAMethod · 0.68