From b47ca8b8769883557ac1ef62a6fb1cd815f08fb6 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Thu, 6 Feb 2020 21:39:23 +0000 Subject: Support lorri From what I currently understand, lorri is a tool (sponsored by Target) that uses nix and direnv to build and switch between environments quickly and easily. When you run `lorri init` inside of a directory, lorri creates a shell.nix and an .envrc file. The .envrc file calls `eval "$(lorri direnv)"` and the shell.nix calls `.mkShell`, which creates a shell environment exposing dependencies on $PATH and environment variables. lorri uses direnv to ensure that $PATH and the environment variables are available depending on your CWD. lorri becomes especially powerful because of Emacs's `direnv-mode`, which ensures that Emacs buffers can access anything exposed by direnv as well. I still need to learn more about how lorri works and how it will affect my workflow, but I'm enjoying what I've seen thus far, and I'm optimistic about the road ahead. --- shell.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 shell.nix (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000000..ef8960b822db --- /dev/null +++ b/shell.nix @@ -0,0 +1,14 @@ +{ pkgs ? import {}, ... }: + +pkgs.mkShell rec { + buildInputs = []; + # TODO(wpcarro): How does pkgs.mkShell handle exported and non-exported + # variable definitions? + BRIEFCASE = builtins.toPath ~/briefcase; + DEPOT = builtins.toPath ~/depot; + NIXPKGS = builtins.toPath ~/nixpkgs; + NIX_PATH="nixpkgs=${NIXPKGS}:depot=${DEPOT}:briefcase=${BRIEFCASE}"; + DESKTOP = "zeno.lon.corp.google.com"; + LAPTOP = "seneca"; + CLOUDTOP = "wpcarro.c.googlers.com"; +} -- cgit 1.4.1