import: cabal: Allow properties without space between key and value.

* guix/import/cabal.scm (lex-word): Add colon to delimiters.
* tests/hackage.scm (test-cabal-property-no-space): New variable.
("hackage->guix-package test properties without space"): New test.
This commit is contained in:
Lars-Dominik Braun 2022-04-30 15:39:51 +02:00
parent 0972feaff1
commit 001e0bac99
No known key found for this signature in database
GPG key ID: F663943E08D8092A
2 changed files with 20 additions and 1 deletions

View file

@ -573,7 +573,7 @@ (define (lex-single-char port loc)
(define (lex-word port loc)
"Process tokens which can be recognized by reading the next word form PORT.
LOC is the current port location."
(let* ((w (read-delimited " <>=()\t\n" port 'peek)))
(let* ((w (read-delimited " <>=():\t\n" port 'peek)))
(cond ((is-if w) (lex-if loc))
((is-elif w) (lex-elif loc))
((is-test w port) (lex-test w loc))

View file

@ -315,6 +315,25 @@ (define test-cabal-flag-executable
(test-assert "hackage->guix-package test flag executable"
(eval-test-with-cabal test-cabal-flag-executable match-ghc-foo))
;; There is no mandatory space between property name and value.
(define test-cabal-property-no-space
"name:foo
version:1.0.0
homepage:http://test.org
synopsis:synopsis
description:description
license:BSD3
common bench-defaults
ghc-options:-Wall
executable cabal
build-depends:
HTTP >= 4000.2.5 && < 4000.3,
mtl >= 2.0 && < 3
")
(test-assert "hackage->guix-package test properties without space"
(eval-test-with-cabal test-cabal-property-no-space match-ghc-foo))
;; Check if-elif-else statements
(define test-cabal-if
"name: foo