From 08e98e2e632a4b9db9568799f2b36aea345dc36d Mon Sep 17 00:00:00 2001 From: pacien Date: Tue, 15 Nov 2022 01:06:03 +0100 Subject: lib/shell: add optional print functions --- lib/mk-dev-shell.nix | 4 ++-- lib/mk-sandbox-system.nix | 4 ++-- lib/shell.nix | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/mk-dev-shell.nix b/lib/mk-dev-shell.nix index 4f46d69..fe2ac02 100644 --- a/lib/mk-dev-shell.nix +++ b/lib/mk-dev-shell.nix @@ -13,8 +13,8 @@ in pkgs.mkShell { shellHook = '' ${shellLib.exportEnvVars envVars} - ${pkgs.lib.optionalString (envVars != {}) (shellLib.printEnvVars envVars)} - ${pkgs.lib.optionalString (tools != []) (shellLib.printBins tools)} + ${shellLib.ifSomeAttrs envVars shellLib.printEnvVars} + ${shellLib.ifSomeList tools shellLib.printBins} echo ${if (shell != null) then shell else shellLib.startUserShell} diff --git a/lib/mk-sandbox-system.nix b/lib/mk-sandbox-system.nix index b678399..56ccad1 100644 --- a/lib/mk-sandbox-system.nix +++ b/lib/mk-sandbox-system.nix @@ -55,8 +55,8 @@ in rec { # TODO: also print a summary of the host mount points # TODO: also print a summary of the forwarded ports interactiveShellInit = lib.mkBefore '' - ${lib.optionalString (envVars != {}) (shellLib.printEnvVars envVars)} - ${lib.optionalString (tools != []) (shellLib.printBins tools)} + ${shellLib.ifSomeAttrs envVars shellLib.printEnvVars} + ${shellLib.ifSomeList tools shellLib.printBins} echo ''; }; diff --git a/lib/shell.nix b/lib/shell.nix index 3f6defc..d7d15fa 100644 --- a/lib/shell.nix +++ b/lib/shell.nix @@ -16,6 +16,9 @@ let }; in rec { + ifSomeAttrs = attrs: f: pkgs.lib.optionalString (attrs != {}) (f attrs); + ifSomeList = list: f: pkgs.lib.optionalString (list != []) (f list); + exportEnvVar = k: v: '' export ${escapeShellArg k}="${v}" ''; -- cgit v1.2.3