From b0f0c98a8acd8baee696ce4beace56fd02ee02c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Fri, 23 Jun 2023 22:00:04 +0200 Subject: [PATCH 1/5] Simplify direnv default value --- cookbook/direnv.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cookbook/direnv.md b/cookbook/direnv.md index 56eff39427c..f6ed2fc024b 100644 --- a/cookbook/direnv.md +++ b/cookbook/direnv.md @@ -17,8 +17,7 @@ To make direnv work with nushell the way it does with other shells, we can use t $env.config = { hooks: { pre_prompt: [{ || - let direnv = (direnv export json | from json) - let direnv = if ($direnv | length) == 1 { $direnv } else { {} } + let direnv = (direnv export json | from json | default {}) $direnv | load-env }] } From 81e378607efbebb8f60e8fabf4ee71911705f1af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Fri, 23 Jun 2023 22:32:22 +0200 Subject: [PATCH 2/5] Set 4 spaces indent --- cookbook/direnv.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cookbook/direnv.md b/cookbook/direnv.md index f6ed2fc024b..cb329a8cc3a 100644 --- a/cookbook/direnv.md +++ b/cookbook/direnv.md @@ -17,8 +17,8 @@ To make direnv work with nushell the way it does with other shells, we can use t $env.config = { hooks: { pre_prompt: [{ || - let direnv = (direnv export json | from json | default {}) - $direnv | load-env + let direnv = (direnv export json | from json | default {}) + let env_to_convert = ($direnv | transpose key value | where key in ($env.ENV_CONVERSIONS | columns)) }] } } From c2f77be54a3e189a3cc1c1699d1506e6ad5787bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Fri, 23 Jun 2023 22:32:44 +0200 Subject: [PATCH 3/5] Transform direnv values using $env.ENV_CONVERSIONS --- cookbook/direnv.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cookbook/direnv.md b/cookbook/direnv.md index cb329a8cc3a..486c113ecd4 100644 --- a/cookbook/direnv.md +++ b/cookbook/direnv.md @@ -19,6 +19,12 @@ $env.config = { pre_prompt: [{ || let direnv = (direnv export json | from json | default {}) let env_to_convert = ($direnv | transpose key value | where key in ($env.ENV_CONVERSIONS | columns)) + let converted_values = ($env_to_convert | each {|it| + let convert = ($env.ENV_CONVERSIONS | get $it.key | get from_string) + let value = (do $convert $it.value) + { $it.key: $value } + } | into record) + $direnv | merge $converted_values | load-env }] } } From 29da68c5289227931f2f19bb49acbdfbf8e54073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Mon, 26 Jun 2023 12:23:27 +0200 Subject: [PATCH 4/5] Simplify env filtering --- cookbook/direnv.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/direnv.md b/cookbook/direnv.md index 486c113ecd4..aad71757338 100644 --- a/cookbook/direnv.md +++ b/cookbook/direnv.md @@ -18,7 +18,7 @@ $env.config = { hooks: { pre_prompt: [{ || let direnv = (direnv export json | from json | default {}) - let env_to_convert = ($direnv | transpose key value | where key in ($env.ENV_CONVERSIONS | columns)) + let env_to_convert = ($direnv | transpose key value | where key in $env.ENV_CONVERSIONS) let converted_values = ($env_to_convert | each {|it| let convert = ($env.ENV_CONVERSIONS | get $it.key | get from_string) let value = (do $convert $it.value) From 987406c76b0ecbf5bad35aac33acaecb62138ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Mon, 26 Jun 2023 15:09:40 +0200 Subject: [PATCH 5/5] Simplify direnv env convert pipeline --- cookbook/direnv.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/cookbook/direnv.md b/cookbook/direnv.md index aad71757338..763e243fa28 100644 --- a/cookbook/direnv.md +++ b/cookbook/direnv.md @@ -18,13 +18,20 @@ $env.config = { hooks: { pre_prompt: [{ || let direnv = (direnv export json | from json | default {}) - let env_to_convert = ($direnv | transpose key value | where key in $env.ENV_CONVERSIONS) - let converted_values = ($env_to_convert | each {|it| - let convert = ($env.ENV_CONVERSIONS | get $it.key | get from_string) - let value = (do $convert $it.value) - { $it.key: $value } - } | into record) - $direnv | merge $converted_values | load-env + if ($direnv | is-empty) { + return + } + $direnv + | items {|key, value| + { + key: $key + value: (if $key in $env.ENV_CONVERSIONS { + do ($env.ENV_CONVERSIONS | get $key | get from_string) $value + } else { + $value + }) + } + } | transpose -ird | load-env }] } }