@@ -172,19 +172,10 @@ func ParseControlFile(r io.Reader) (*Package, error) {
172172 value := strings .TrimSpace (parts [1 ])
173173 switch key {
174174 case "Package" :
175- if ! namePattern .MatchString (value ) {
176- return nil , ErrInvalidName
177- }
178175 p .Name = value
179176 case "Version" :
180- if ! versionPattern .MatchString (value ) {
181- return nil , ErrInvalidVersion
182- }
183177 p .Version = value
184178 case "Architecture" :
185- if value == "" {
186- return nil , ErrInvalidArchitecture
187- }
188179 p .Architecture = value
189180 case "Maintainer" :
190181 a , err := mail .ParseAddress (value )
@@ -208,13 +199,23 @@ func ParseControlFile(r io.Reader) (*Package, error) {
208199 return nil , err
209200 }
210201
202+ if ! namePattern .MatchString (p .Name ) {
203+ return nil , ErrInvalidName
204+ }
205+ if ! versionPattern .MatchString (p .Version ) {
206+ return nil , ErrInvalidVersion
207+ }
208+ if p .Architecture == "" {
209+ return nil , ErrInvalidArchitecture
210+ }
211+
211212 dependencies := strings .Split (depends .String (), "," )
212213 for i := range dependencies {
213214 dependencies [i ] = strings .TrimSpace (dependencies [i ])
214215 }
215216 p .Metadata .Dependencies = dependencies
216217
217- p .Control = control .String ()
218+ p .Control = strings . TrimSpace ( control .String () )
218219
219220 return p , nil
220221}
0 commit comments