aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-10-17 20:58:02 +0200
committerLudovic Courtès <ludo@gnu.org>2014-11-02 21:22:12 +0100
commite786293e769f4d69e14d77905bf3a5745557033f (patch)
tree4e95aa8dff7c98f527f15cf628c7c34c3377732c
parent5c2033f86469ed052fd89a2a228f8cb17128ddf2 (diff)
downloadguix-e786293e769f4d69e14d77905bf3a5745557033f.tar
guix-e786293e769f4d69e14d77905bf3a5745557033f.tar.gz
derivations: Add 'derivation-name'.
* guix/derivations.scm (derivation-name): New procedure. * tests/derivations.scm ("derivation-name"): New test.
-rw-r--r--guix/derivations.scm6
-rw-r--r--tests/derivations.scm5
2 files changed, 11 insertions, 0 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index b80e31936e..b2a5c6b976 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -56,6 +56,7 @@
derivation-input-sub-derivations
derivation-input-output-paths
+ derivation-name
fixed-output-derivation?
offloadable-derivation?
substitutable-derivation?
@@ -128,6 +129,11 @@
(derivation-outputs drv)))
(number->string (object-address drv) 16))))
+(define (derivation-name drv)
+ "Return the base name of DRV."
+ (let ((base (store-path-package-name (derivation-file-name drv))))
+ (string-drop-right base 4)))
+
(define (fixed-output-derivation? drv)
"Return #t if DRV is a fixed-output derivation, such as the result of a
download with a fixed hash (aka. `fetchurl')."
diff --git a/tests/derivations.scm b/tests/derivations.scm
index 29b341e2bb..4b36758c25 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -173,6 +173,11 @@
(= (stat:ino (lstat file1))
(stat:ino (lstat file2))))))))
+(test-equal "derivation-name"
+ "foo-0.0"
+ (let ((drv (derivation %store "foo-0.0" %bash '())))
+ (derivation-name drv)))
+
(test-assert "offloadable-derivation?"
(and (offloadable-derivation? (derivation %store "foo" %bash '()))
(not (offloadable-derivation?