From 4e49163f76946503121493fafd6c0fe7b5bde030 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 1 Sep 2016 22:39:41 +0200 Subject: guix build: Rewrite '--with-input' in terms of 'package-input-rewriting'. * guix/scripts/build.scm (transform-package-inputs): Rewrite in terms of 'package-input-rewriting'. --- guix/scripts/build.scm | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'guix') diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 9a113b4ebe..86b95b4075 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -193,33 +193,17 @@ of \"guile\"." (map (lambda (spec) (match (string-tokenize spec not-equal) ((old new) - (cons old (specification->package new))) + (cons (specification->package old) + (specification->package new))) (_ (leave (_ "invalid replacement specification: ~s~%") spec)))) replacement-specs)) - (define (rewrite input) - (match input - ((label (? package? package) outputs ...) - (match (assoc-ref replacements (package-name package)) - (#f (cons* label (replace package) outputs)) - (new (cons* label new outputs)))) - (_ - input))) - - (define replace - (memoize ;XXX: use eq? - (lambda (p) - (package - (inherit p) - (inputs (map rewrite (package-inputs p))) - (native-inputs (map rewrite (package-native-inputs p))) - (propagated-inputs (map rewrite (package-propagated-inputs p))))))) - - (lambda (store obj) - (if (package? obj) - (replace obj) - obj))) + (let ((rewrite (package-input-rewriting replacements))) + (lambda (store obj) + (if (package? obj) + (rewrite obj) + obj)))) (define %transformations ;; Transformations that can be applied to things to build. The car is the -- cgit v1.2.3