From e37b8c9d8c4c7108b3e507ab996decbf6e683c78 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Tue, 18 Jan 2022 12:06:26 -0800 Subject: [PATCH] refactor(wpcarro/emacs): Expose env as kwarg in withEmacsPath This allows me to remove google-briefcase references. Change-Id: I61234b2ac20e0de0f3d0d820a471342124d72f2d Reviewed-on: https://cl.tvl.fyi/c/depot/+/4996 Tested-by: BuildkiteCI Reviewed-by: wpcarro --- users/wpcarro/emacs/default.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/users/wpcarro/emacs/default.nix b/users/wpcarro/emacs/default.nix index 54c1a50cf..20ef805db 100644 --- a/users/wpcarro/emacs/default.nix +++ b/users/wpcarro/emacs/default.nix @@ -1,4 +1,4 @@ -{ pkgs, depot, ... }: +{ depot, pkgs, lib, ... }: # TODO(wpcarro): See if it's possible to expose emacsclient on PATH, so that I # don't need to depend on wpcarros-emacs and emacs in my NixOS configurations. @@ -7,7 +7,8 @@ let inherit (depot.third_party.nixpkgs) emacsPackagesGen emacs27; inherit (depot.users) wpcarro; inherit (pkgs) writeShellScript writeShellScriptBin; - inherit (pkgs.lib.strings) concatStringsSep makeBinPath; + inherit (lib) mapAttrsToList; + inherit (lib.strings) concatStringsSep makeBinPath; emacsBinPath = makeBinPath ( wpcarro.common.shell-utils ++ @@ -146,12 +147,16 @@ let "${wpcarrosEmacs.deps}/share/emacs/site-lisp:" ]; - withEmacsPath = { emacsBin }: + # Transform an attrset into "export k=v" statements. + makeEnvVars = env: concatStringsSep "\n" + (mapAttrsToList (k: v: "export ${k}=\"${v}\"") env); + + withEmacsPath = { emacsBin, env ? {} }: writeShellScriptBin "wpcarros-emacs" '' export XMODIFIERS=emacs - export GOOGLE_BRIEFCASE="$HOME/google-briefcase" export PATH="${emacsBinPath}:$PATH" export EMACSLOADPATH="${loadPath}" + ${makeEnvVars env} exec ${emacsBin} \ --debug-init \ --no-init-file \