diff options
author | Ben Woodcroft <donttrustben@gmail.com> | 2016-05-22 08:46:39 +1000 |
---|---|---|
committer | Ben Woodcroft <donttrustben@gmail.com> | 2016-05-25 22:34:29 +1000 |
commit | 25c288cbf12925e0f079a2ebb0247a21e14dc6b8 (patch) | |
tree | af3207051c561508a0454672a9ca9246beb01a84 /guix/build | |
parent | 2301195f2e63ca079c1a2564479f4fbbc746e586 (diff) | |
download | gnu-guix-25c288cbf12925e0f079a2ebb0247a21e14dc6b8.tar gnu-guix-25c288cbf12925e0f079a2ebb0247a21e14dc6b8.tar.gz |
guix: ruby-build-system: Extract gemspec during 'extract-gemspec'.
* guix/build/ruby-build-system.scm (build): Move extraction from here ...
(extract-gemspec): ... to here. New variable.
(first-gemspec): New variable.
(%standard-phases): Add 'extract-gemspec' phase.
Diffstat (limited to 'guix/build')
-rw-r--r-- | guix/build/ruby-build-system.scm | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index a4ac3b307c..79ac380cb8 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -66,14 +66,13 @@ directory." ;; Use GNU unpack strategy for things that aren't gem archives. (gnu:unpack #:source source))) -(define* (build #:key source #:allow-other-keys) - "Build a new gem using the gemspec from the SOURCE gem." - (define (first-gemspec) - (first-matching-file "\\.gemspec$")) +(define (first-gemspec) + (first-matching-file "\\.gemspec$")) - ;; Remove the original gemspec, if present, and replace it with a new one. - ;; This avoids issues with upstream gemspecs requiring tools such as git to - ;; generate the files list. +(define* (extract-gemspec #:key source #:allow-other-keys) + "Remove the original gemspec, if present, and replace it with a new one. +This avoids issues with upstream gemspecs requiring tools such as git to +generate the files list." (when (gem-archive? source) (let ((gemspec (or (false-if-exception (first-gemspec)) ;; Make new gemspec if one wasn't shipped. @@ -94,7 +93,10 @@ directory." (write-char (read-char pipe) out)))) #t) (lambda () - (close-pipe pipe)))))) + (close-pipe pipe))))))) + +(define* (build #:key source #:allow-other-keys) + "Build a new gem using the gemspec from the SOURCE gem." ;; Build a new gem from the current working directory. This also allows any ;; dynamic patching done in previous phases to be present in the installed @@ -134,6 +136,7 @@ GEM-FLAGS are passed to the 'gem' invokation, if present." (define %standard-phases (modify-phases gnu:%standard-phases (delete 'configure) + (add-before 'build 'extract-gemspec extract-gemspec) (replace 'build build) (replace 'unpack unpack) (replace 'install install) |