>From 67f7193f2d8c51c43146514944659f15b98c7104 Mon Sep 17 00:00:00 2001 From: "Collin J. Doering" 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 --- 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 ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Benjamin Slade +;;; Copyright © 2019 Collin J. Doering ;;; ;;; 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