GnomeStack.Text.DotEnv
0.1.6
dotnet add package GnomeStack.Text.DotEnv --version 0.1.6
NuGet\Install-Package GnomeStack.Text.DotEnv -Version 0.1.6
<PackageReference Include="GnomeStack.Text.DotEnv" Version="0.1.6" />
paket add GnomeStack.Text.DotEnv --version 0.1.6
#r "nuget: GnomeStack.Text.DotEnv, 0.1.6"
// Install GnomeStack.Text.DotEnv as a Cake Addin #addin nuget:?package=GnomeStack.Text.DotEnv&version=0.1.6 // Install GnomeStack.Text.DotEnv as a Cake Tool #tool nuget:?package=GnomeStack.Text.DotEnv&version=0.1.6
GnomeStack.Text.DotEnv
Provides a dotenv .env
serializer for .NET that supports
comments, blank lines, json, yaml and environment variable expansion.
Json and Yaml escapes are only supported for parsing. Backticks ` may be used for quoting to handle both single and double quotes in a value.
Serialization/Deserialization currently only supports for EnvDocument
and dictionaries including an OrderedDictionary<string, string>
.
Usage
Loading
using GnomeStack.Std;
// elsewhere
DotEnv.Load(new DotEnvLoadOptions()
{
Content = """
name="John Doe"
age="21"
""",
});
Console.WriteLine(Env.Get("name"));
Std
using GnomeStack.Std;
// elsewhere
var envText = DotEnv.Stringify(new OrderedDictionary<string, string> {
{ "NAME", "John Doe" },
{ "AGE", "42" }
});
Console.WriteLine(envText);
// =>
// NAME="John Doe"
// AGE="42"
Deserialize
Environment.SetEnvironmentVariable("WORD", "world");
var envContent = """
# This is a comment
TEST=hello_world
# this is a comment too
PW=X232dwe)()_+!@
## this is a comment woo hoo
MULTI="1
2
3
4"
HW="Hello, ${WORD}"
""";
var values = DotEnvSerializer.Deserialize(
envContent,
typeof(Dictionary<string, string>));
assert.NotNull(values);
assert.IsType<Dictionary<string, string>>(values);
var env = (Dictionary<string, string>)values;
assert.Equal(4, env.Count);
assert.Equal("hello_world", env["TEST"]);
assert.Equal("X232dwe)()_+!@", env["PW"]);
var r = "1\r\n2\r\n3\r\n 4";
if (!Env.IsWindows)
r = "1\n2\n3\n 4";
assert.Equal(r, env["MULTI"]);
assert.Equal("Hello, world", env["HW"]);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- GnomeStack.Core (>= 0.1.6)
- Polyfill (>= 1.34.0)
-
net6.0
- GnomeStack.Core (>= 0.1.6)
-
net8.0
- GnomeStack.Core (>= 0.1.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
# CHANGE LOG
## 0.1.5
- Move source to github.com/gnomestack/dotnet-std from github.com/gnomestack/dotnet
- Add initial support for trimming.
## 0.1.0 initial creation
- created.