diff options
Diffstat (limited to 'src/cuirass/base.scm')
-rw-r--r-- | src/cuirass/base.scm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm index c7c23e2..63e1b7a 100644 --- a/src/cuirass/base.scm +++ b/src/cuirass/base.scm @@ -1,6 +1,7 @@ ;;;; base.scm - Cuirass base module ;;; ;;; Copyright © 2012, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; ;;; This file is part of Cuirass. ;;; @@ -20,9 +21,23 @@ (define-module (cuirass base) #:use-module (ice-9 format) #:use-module (srfi srfi-19) - #:export (guix-variable - with-directory-excursion - call-with-time-display)) + #:export (;; Procedures. + guix-variable + call-with-time-display + ;; Parameters. + %program-name + ;; Macros. + with-directory-excursion)) + +(define %program-name + ;; Similar in spirit to Gnulib 'progname' module. + (make-parameter "" + (λ (val) + (cond ((not (string? val)) + (scm-error 'wrong-type-arg + "%program-name" "Not a string: ~S" (list #f) #f)) + ((string-rindex val #\/) => (λ (idx) (substring val (1+ idx)))) + (else val))))) (define (guix-variable module name) "Dynamically link variable NAME under Guix module MODULE and return it. |