diff options
-rwxr-xr-x | config/direnv/direnvrc | 13 | ||||
-rw-r--r-- | kbg/services/config/direnv.scm | 2 |
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 |