|
|
@ -172,19 +172,10 @@ func ParseControlFile(r io.Reader) (*Package, error) {
|
|
|
|
value := strings.TrimSpace(parts[1])
|
|
|
|
value := strings.TrimSpace(parts[1])
|
|
|
|
switch key {
|
|
|
|
switch key {
|
|
|
|
case "Package":
|
|
|
|
case "Package":
|
|
|
|
if !namePattern.MatchString(value) {
|
|
|
|
|
|
|
|
return nil, ErrInvalidName
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
p.Name = value
|
|
|
|
p.Name = value
|
|
|
|
case "Version":
|
|
|
|
case "Version":
|
|
|
|
if !versionPattern.MatchString(value) {
|
|
|
|
|
|
|
|
return nil, ErrInvalidVersion
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
p.Version = value
|
|
|
|
p.Version = value
|
|
|
|
case "Architecture":
|
|
|
|
case "Architecture":
|
|
|
|
if value == "" {
|
|
|
|
|
|
|
|
return nil, ErrInvalidArchitecture
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
p.Architecture = value
|
|
|
|
p.Architecture = value
|
|
|
|
case "Maintainer":
|
|
|
|
case "Maintainer":
|
|
|
|
a, err := mail.ParseAddress(value)
|
|
|
|
a, err := mail.ParseAddress(value)
|
|
|
@ -208,13 +199,23 @@ func ParseControlFile(r io.Reader) (*Package, error) {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if !namePattern.MatchString(p.Name) {
|
|
|
|
|
|
|
|
return nil, ErrInvalidName
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if !versionPattern.MatchString(p.Version) {
|
|
|
|
|
|
|
|
return nil, ErrInvalidVersion
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if p.Architecture == "" {
|
|
|
|
|
|
|
|
return nil, ErrInvalidArchitecture
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dependencies := strings.Split(depends.String(), ",")
|
|
|
|
dependencies := strings.Split(depends.String(), ",")
|
|
|
|
for i := range dependencies {
|
|
|
|
for i := range dependencies {
|
|
|
|
dependencies[i] = strings.TrimSpace(dependencies[i])
|
|
|
|
dependencies[i] = strings.TrimSpace(dependencies[i])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
p.Metadata.Dependencies = dependencies
|
|
|
|
p.Metadata.Dependencies = dependencies
|
|
|
|
|
|
|
|
|
|
|
|
p.Control = control.String()
|
|
|
|
p.Control = strings.TrimSpace(control.String())
|
|
|
|
|
|
|
|
|
|
|
|
return p, nil
|
|
|
|
return p, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|