Patchwork gnu: Add direnv

login
register
mail settings
Submitter Christopher Baines
Date Sept. 10, 2016, 4:39 p.m.
Message ID <20160910163933.24468-2-mail@cbaines.net>
Download mbox | patch
Permalink /patch/15492/
State New
Headers show

Comments

Christopher Baines - Sept. 10, 2016, 4:39 p.m.
* gnu/packages/shellutils.scm (direnv): New variable.
---
 gnu/packages/shellutils.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

Patch

diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 27f45ba..e582186 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -19,6 +19,7 @@ 
 
 (define-module (gnu packages shellutils)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages python)
   #:use-module (guix licenses)
   #:use-module (guix packages)
@@ -88,3 +89,35 @@  FreeDesktop.org trash can used by GNOME, KDE, XFCE, and other common desktop
 environments.  It can move files to the trash, and remove or list files that
 are already there.")
     (license gpl2+)))
+
+(define-public direnv
+  (package
+    (name "direnv")
+    (version "2.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/direnv/" name
+                           "/archive/v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04v3v2sz9m6ivgbxcplxscj1dsvpaqpqnxgls4060naj3iz9sg82"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases (delete 'configure))))
+    (native-inputs
+      `(("go" ,go)
+        ("which" ,which)))
+    (home-page "http://direnv.net/")
+    (synopsis "Environment switcher for the shell")
+    (description "direnv can hook into bash, zsh, tcsh and fish shell to load
+or unload environment variables depending on the current directory.  This
+allows project-specific environment variables without using the ~/.profile
+file.
+
+Before each prompt, direnv checks for the existence of a .envrc file in the
+current and parent directories.  This file is then used to alter the
+environmental variables of the current shell.")
+    (license expat)))