~ruther/guix-local

6ad2e407ebb6bf87bc30cc30d1b6f9d688a17854 — Herman Rimm 1 year, 3 months ago 0950b72
scripts: style: Sort more kinds of package definitions.

* guix/scripts/style.scm (order-packages): Match comments before package
S-exp. and its fields.  Match in let.  Match package/inherit.
* tests/guix-style.sh: Add pkg-baz variable and package/inherit to test.

Change-Id: I48a5976930501c20415b5413966b5294958bc23b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 15 insertions(+), 8 deletions(-)

M guix/scripts/style.scm
M tests/guix-style.sh
M guix/scripts/style.scm => guix/scripts/style.scm +7 -6
@@ 503,13 503,14 @@ top-level package definitions in alphabetical order.  Packages which
share a name are placed with versions in descending order."
  (define (package-fields pkg)
    (match pkg
      ((('define-public _ expr) _ ...)
      ((('define-public pkg _ ... (or ('let _ expr) expr)) _ ...)
       (match expr
         ((or ('package _ ('name name) ('version version) _ ...)
              ('package ('name name) ('version version) _ ...))
          (values name version))
         (_ (values #f #f))))
      (_ (values #f #f))))
         (((or 'package 'package/inherit) fields ...)
          (let ((name (and=> (assoc-ref fields 'name) first))
                (version (and=> (assoc-ref fields 'version) first)))
            (values name version)))
         (_ (and (values #f #f)))))
      (_ (and (values #f #f)))))

  (define (package>? lst1 lst2)
    (let-values (((name1 version1) (package-fields lst1))

M tests/guix-style.sh => tests/guix-style.sh +8 -2
@@ 65,10 65,16 @@ cat > "$tmpfile" <<EOF
    (name "bar")
    (version "2")))

(define-public pkg-baz
  (let ()
    (package
      (name "baz")
      (version "2"))))

;; The comment below belongs to the foo package.
(define-public pkg
  (package
    (name "bar")
  (package/inherit pkg-baz
    (name "baz")
    (version "1")))
;; Incomplete package definitions in alphabetical order.