From 5127c6797ca6eb5782f96f44c7c1d38263927f2b Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 25 Jan 2017 09:54:54 +0100 Subject: cuirass: Add "--load-path" option. * bin/cuirass.in (%options): Add "--load-path" and "-L" command line options. (show-help): Adapt. * src/cuirass/base.scm (%guix-package-path): New parameter. (set-guix-package-path!): New procedure. (evaluate): Call "evaluate" script with '%guix-package-path'. * bin/evaluate.in (main): Match 'guix-package-path' command line argument and handle it. Signed-off-by: Mathieu Lirzin --- bin/cuirass.in | 5 +++++ bin/evaluate.in | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'bin') diff --git a/bin/cuirass.in b/bin/cuirass.in index b41a713..7df5ddb 100644 --- a/bin/cuirass.in +++ b/bin/cuirass.in @@ -7,6 +7,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" !# ;;;; cuirass -- continuous integration tool ;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of Cuirass. ;;; @@ -34,6 +35,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" --one-shot Evaluate and build jobs only once --cache-directory=DIR Use DIR for storing repository data + -L --load-path=DIR Prepend DIR to Guix package module search path. -S --specifications=SPECFILE Add specifications from SPECFILE to database. -D --database=DB Use DB to store build results. @@ -48,6 +50,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" (define %options '((one-shot (value #f)) (cache-directory (value #t)) + (load-path (single-char #\L) (value #t)) (specifications (single-char #\S) (value #t)) (database (single-char #\D) (value #t)) (port (single-char #\p) (value #t)) @@ -68,6 +71,8 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" (%package-database (option-ref opts 'database (%package-database))) (%package-cachedir (option-ref opts 'cache-directory (%package-cachedir))) + (%guix-package-path + (option-ref opts 'load-path (%guix-package-path))) (%use-substitutes? (option-ref opts 'use-substitutes #f))) (cond ((option-ref opts 'help #f) diff --git a/bin/evaluate.in b/bin/evaluate.in index c8a45ce..0508783 100644 --- a/bin/evaluate.in +++ b/bin/evaluate.in @@ -8,6 +8,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" ;;;; evaluate -- convert a specification to a job list ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of Cuirass. ;;; @@ -32,7 +33,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" (define* (main #:optional (args (command-line))) (match args - ((command load-path cachedir specstr database) + ((command load-path guix-package-path cachedir specstr database) ;; Load FILE, a Scheme file that defines Hydra jobs. (let ((%user-module (make-fresh-user-module)) (spec (with-input-from-string specstr read)) @@ -58,6 +59,8 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" (exit 1))) (parameterize ((%package-database database) (%use-substitutes? (assoc-ref spec #:use-substitutes?))) + (unless (string-null? guix-package-path) + (set-guix-package-path! guix-package-path)) ;; Call the entry point of FILE and print the resulting job sexp. (let* ((proc-name (assq-ref spec #:proc)) (proc (module-ref %user-module proc-name)) -- cgit v1.2.3