[bug#37365] - Amendment: Enable tests
diff mbox series

Message ID 87o8zr34gz.fsf@rekahsoft.ca
State New
Headers show
Series
  • [bug#37365] - Amendment: Enable tests
Related show

Commit Message

Collin J. Doering Sept. 11, 2019, 3:18 a.m. UTC
Enable tests for zsh-autosuggetions. These tests use tmux, zsh, and ruby
with rspec, inspecting output after simulating input.

Many thanks to rekado for his advise on IRC.

This is ready to merge.

Comments

Efraim Flashner Sept. 11, 2019, 7:37 a.m. UTC | #1
These should be two patches, the first one to add the ruby package and
the second to add the zsh package.

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (install-path (string-append out "/share/zsh/plugins/zsh-autosuggestions")))
> +               (mkdir-p install-path)
> +               (invoke "make" "all")
> +               (copy-file "zsh-autosuggestions.zsh" (string-append install-path "/zsh-autosuggestions.zsh"))
> +               #t))))))

I don't use zsh so I'm asking without knowing anything about the
directory structure, is %out/share/zsh/plugins/zsh-autosuggestions the
correct folder? The only folder I currently have after zsh is
site-functions.

(ins)efraim@E5400 ~$ tree .guix-profile/share/zsh/
.guix-profile/share/zsh/
 site-functions
     _mpv -> /gnu/store/acrlmdnmrkivbdrry756pf9grsx2x814-mpv-0.29.1/share/zsh/site-functions/_mpv
     _vifm -> /gnu/store/1l9b676paigfc3fx9r8h6h2k5d33wrhk-vifm-0.10.1/share/zsh/site-functions/_vifm
     _wgetpaste -> /gnu/store/k5g3fa3i59yxy3n9vf8lm1nfbz5whq2i-wgetpaste-2.29/share/zsh/site-functions/_wgetpaste

Patch
diff mbox series

From 67f7193f2d8c51c43146514944659f15b98c7104 Mon Sep 17 00:00:00 2001
From: "Collin J. Doering" <collin@rekahsoft.ca>
Date: Tue, 10 Sep 2019 22:58:32 -0400
Subject: [PATCH] gnu: Add zsh-autosuggestions

* gnu/packages/shellutils.scm (zsh-autosuggestions): New variable.
* gnu/packages/ruby.scm (ruby-rspec-wait): New variable.

Signed-off-by: Collin J. Doering <collin@rekahsoft.ca>
---
 gnu/packages/ruby.scm       | 26 ++++++++++++++++++++
 gnu/packages/shellutils.scm | 49 +++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ef9792bc0f..b953c51204 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -670,6 +670,32 @@  RSpec tests.")
     (home-page "https://github.com/dblock/rspec-rerun")
     (license license:expat)))
 
+(define-public ruby-rspec-wait
+  (package
+    (name "ruby-rspec-wait")
+    (version "0.0.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (rubygems-uri "rspec-wait" version))
+        (sha256
+          (base32
+            "0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "rake" "spec"))))))
+    (native-inputs
+     `(("bundler" ,bundler)))
+    (propagated-inputs `(("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Wait for conditions in RSpec")
+    (description "Wait for conditions in RSpec")
+    (home-page
+      "https://github.com/laserlemon/rspec-wait")
+    (license license:expat)))
+
 (define-public ruby-rspec
   (package
     (name "ruby-rspec")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index f7542ea759..420f946c83 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -5,6 +5,7 @@ 
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
+;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,11 +34,59 @@ 
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages tmux)
+  #:use-module (gnu packages shells)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system python))
 
+(define-public zsh-autosuggestions
+  (package
+    (name "zsh-autosuggestions")
+    (version "0.6.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zsh-users/zsh-autosuggestions.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1h8h2mz9wpjpymgl2p7pc146c1jgb3dggpvzwm9ln3in336wl95c"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("tmux" ,tmux)
+       ("zsh" ,zsh)
+       ("ruby" ,ruby)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-rspec-wait" ,ruby-rspec-wait)
+       ("ruby-pry" ,ruby-pry)
+       ("ruby-byebug" ,ruby-byebug)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'check ; Tests use ruby's bundler; instead execute rspec directly
+           (lambda _
+             (setenv "TMUX_TMPDIR" (getenv "TMPDIR"))
+             (setenv "SHELL" (which "zsh"))
+             (invoke "rspec")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (install-path (string-append out "/share/zsh/plugins/zsh-autosuggestions")))
+               (mkdir-p install-path)
+               (invoke "make" "all")
+               (copy-file "zsh-autosuggestions.zsh" (string-append install-path "/zsh-autosuggestions.zsh"))
+               #t))))))
+    (synopsis "Fish-like autosuggestions for zsh")
+    (description
+     "Fish-like fast/unobtrusive autosuggestions for zsh.  It suggests commands as you type.")
+    (home-page "https://github.com/zsh-users/zsh-autosuggestions.git")
+    (license license:expat)))
+
 (define-public envstore
   (package
     (name "envstore")
-- 
2.23.0