aboutsummaryrefslogtreecommitdiff
path: root/guix/build/ruby-build-system.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2019-03-28 20:18:02 +0200
committerEfraim Flashner <efraim@flashner.co.il>2019-03-28 20:19:44 +0200
commit7c86fdda7ceed11377b0e17b47c91598be59be52 (patch)
treeb3e79f3f1cfcc9748a723461e2594c387ba9388b /guix/build/ruby-build-system.scm
parent0244952c11c0409597fce5c39dfbcafdfd2ea651 (diff)
downloadguix-7c86fdda7ceed11377b0e17b47c91598be59be52.tar
guix-7c86fdda7ceed11377b0e17b47c91598be59be52.tar.gz
Revert "build-system/ruby: Use invoke."
This reverts commit 0244952c11c0409597fce5c39dfbcafdfd2ea651. We prefer 'invoke', but the custom error handling works better with the code as-is.
Diffstat (limited to 'guix/build/ruby-build-system.scm')
-rw-r--r--guix/build/ruby-build-system.scm17
1 files changed, 10 insertions, 7 deletions
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index 49400b204d..63c94765f7 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -143,13 +143,16 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
(gem-dir (string-append vendor-dir "/gems/" gem-name)))
(setenv "GEM_VENDOR" vendor-dir)
- (or (apply invoke "gem" "install" gem-file
- "--verbose"
- "--local" "--ignore-dependencies" "--vendor"
- ;; Executables should go into /bin, not
- ;; /lib/ruby/gems.
- "--bindir" (string-append out "/bin")
- gem-flags)
+ (or (zero?
+ ;; 'zero? system*' allows the custom error handling to function as
+ ;; expected, while 'invoke' raises its own exception.
+ (apply system* "gem" "install" gem-file
+ "--verbose"
+ "--local" "--ignore-dependencies" "--vendor"
+ ;; Executables should go into /bin, not
+ ;; /lib/ruby/gems.
+ "--bindir" (string-append out "/bin")
+ gem-flags))
(begin
(let ((failed-output-dir (string-append (getcwd) "/out")))
(mkdir failed-output-dir)