3 ms·
> for example allowing to specify environment variables in manifest.scm files. There is already .envrc or .dir-locals.el? And manifest is just - well - manifes
by sierkov 4y ago
> for example allowing to specify environment variables in manifest.scm files.
There is already .envrc or .dir-locals.el? And manifest is just - well - manifest. By definition it has to be 'plain'. I mean, there are already a million ways to load env vars so why'd you want guix to do that too and from manifest.scm of all places?
- Reventlov 4y agoBecause instead of distributing two files (channels.scm and manifest.scm, or flake.lock and flake.nix), you have to execute monstruosities like `guix shell --container -m ./manifest.scm -- bash -c 'GUIX_LOCPATH=$GUIX_ENVIRONMENT/lib/locale LC_ALL=fr_FR.utf-8 exec jekyll build'`, which is how I build some websites I have. To me, that's not ok from an user experience point of view.
- sierkov 4y agoExactly my point. You can already do it with direnv, have guix shell once you cd into dir and then just do `jekyll build`.
- mananaysiempre 4y agoDoes nix develop -c jekyll build not do the job for you? (For a single development command—for deploy 'nix build' should be set up to do the right thing, including setting LC_ALL if necessary; and to enter a dev shell just 'nix develop' should work. Nixpkgs installs glibc with a full complement of locales by default, which has its downsides size-wise but should prevent any troubles when setting LC_ALL=fr_FR.) Or, for an automatic setup, cat > .envrc use flake ^D or, for an automatic setup with caching[1], cat > .envrc if ! has nix_direnv_version || ! nix_direnv_version 2.2.0; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.0/direnvrc" "sha256-5EwyKnkJNQeXrRkYbwwRBcXbibosCJqyIUuz9Xq+LRc=" fi use flake ^D (I don't have nix-direnv installed systemwide because it ignores the --no-write-lock-file flag I need to pass sometimes. If you put some of your config in default.nix or shell.nix or whatever, you’ll need to watch_file resp. nix_direnv_watch_file those.) [1] https://github.com/nix-community/nix-direnv#direnv-source_url https://github.com/nix-community/nix-direnv#direnv-source_ur...
- Reventlov 4y agoOh, in Nix, this works flawlessly, I was talking about Guix in the comment !
- rekado 4y agoUse `setenv` inside the manifest. (setenv "MAMA" "MIA") (specifications->manifest (list "hello"))