From 6646daab4543edb9b530c0d4a9e97ca8b4d02984 Mon Sep 17 00:00:00 2001 From: soumil-07 <82497827+soumil-07@users.noreply.github.com> Date: Fri, 6 Aug 2021 22:17:11 +0530 Subject: [PATCH] source config from $NU_CONFIG_DIR if it exists (#3883) --- crates/nu-data/src/config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/nu-data/src/config.rs b/crates/nu-data/src/config.rs index 77bd5e43f9..33ab3c1e96 100644 --- a/crates/nu-data/src/config.rs +++ b/crates/nu-data/src/config.rs @@ -20,6 +20,7 @@ use nu_protocol::{ Value, }; use nu_source::{SpannedItem, Tag, TaggedItem}; +use std::env::var; use std::fs::{self, OpenOptions}; use std::io; use std::path::{Path, PathBuf}; @@ -168,7 +169,9 @@ pub fn config_path() -> Result { let dir = ProjectDirs::from("org", "nushell", "nu") .ok_or_else(|| ShellError::untagged_runtime_error("Couldn't find project directory"))?; - let path = ProjectDirs::config_dir(&dir).to_owned(); + let path = var("NU_CONFIG_DIR").map_or(ProjectDirs::config_dir(&dir).to_owned(), |path| { + PathBuf::from(path) + }); std::fs::create_dir_all(&path).map_err(|err| { ShellError::untagged_runtime_error(&format!("Couldn't create {} path:\n{}", "config", err)) })?;