aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfig/direnv/direnvrc13
-rw-r--r--kbg/services/config/direnv.scm2
2 files changed, 15 insertions, 0 deletions
diff --git a/config/direnv/direnvrc b/config/direnv/direnvrc
new file mode 100755
index 00000000..05e03a5b
--- /dev/null
+++ b/config/direnv/direnvrc
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+function use_guix() {
+ if [[ -f channels.scm ]]; then
+ echo 2> "Using Guix version from channels.scm"
+ export GUIX_ENVIRONMENT=$(guix time-machine --channels ./channels.scm -- shell -- bash -c 'echo ${GUIX_ENVIRONMENT}')
+ eval "$(guix time-machine --channels ./channels.scm -- shell ${FLAGS} --search-paths)"
+ else
+ echo "${FLAGS}"
+ export GUIX_ENVIRONMENT=$(guix shell -- bash -c 'echo ${GUIX_ENVIRONMENT}')
+ eval "$(guix shell --search-paths)"
+ fi
+}
diff --git a/kbg/services/config/direnv.scm b/kbg/services/config/direnv.scm
index 91d315be..02c72ac6 100644
--- a/kbg/services/config/direnv.scm
+++ b/kbg/services/config/direnv.scm
@@ -8,6 +8,8 @@
(define (direnv-config-text)
(mixed-text-file "direnvrc"
"source " nix-direnv "/share/direnvrc"
+ "\n"
+ "source " (local-file (string-append %dotfiles-root "config/direnv/direnvrc"))
"\n"))
(define-public direnv-config-service