@@ -4,30 +4,27 @@ const testing = std.testing;
44const Allocator = std .mem .Allocator ;
55const Self = @This ();
66
7- pub const Options = struct {
8- filename : []const u8 = ".env" ,
9- };
10-
117map : std.process.EnvMap = undefined ,
128
13- pub fn init (allocator : Allocator , options : Options ) ! Self {
9+ pub fn init (allocator : Allocator , filename : ? [] const u8 ) ! Self {
1410 var map = try std .process .getEnvMap (allocator );
1511
16- var file = std .fs .cwd ().openFile (options .filename , .{}) catch {
17- return .{ .map = map };
18- };
19-
20- defer file .close ();
21- var buf_reader = std .io .bufferedReader (file .reader ());
22- var in_stream = buf_reader .reader ();
23- var buf : [1024 ]u8 = undefined ;
24- while (try in_stream .readUntilDelimiterOrEof (& buf , '\n ' )) | line | {
25- std .debug .print ("Line: {s}\n " , .{line });
26- // split into KEY and Value
27- if (std .mem .indexOf (u8 , line , "=" )) | index | {
28- const key = line [0.. index ];
29- const value = line [index + 1 .. ];
30- try map .put (key , value );
12+ if (filename ) | f | {
13+ var file = std .fs .cwd ().openFile (f , .{}) catch {
14+ return .{ .map = map };
15+ };
16+
17+ defer file .close ();
18+ var buf_reader = std .io .bufferedReader (file .reader ());
19+ var in_stream = buf_reader .reader ();
20+ var buf : [1024 ]u8 = undefined ;
21+ while (try in_stream .readUntilDelimiterOrEof (& buf , '\n ' )) | line | {
22+ // split into KEY and Value
23+ if (std .mem .indexOf (u8 , line , "=" )) | index | {
24+ const key = line [0.. index ];
25+ const value = line [index + 1 .. ];
26+ try map .put (key , value );
27+ }
3128 }
3229 }
3330 return .{
@@ -48,11 +45,11 @@ pub fn put(self: *Self, key: []const u8, value: []const u8) !void {
4845}
4946
5047test "load an env file" {
51- var basic_env = try Self .init (testing .allocator , .{ . filename = "" } );
48+ var basic_env = try Self .init (testing .allocator , null );
5249 defer basic_env .deinit ();
5350 const basic_env_count = basic_env .map .count ();
5451
55- var expanded_env = try Self .init (testing .allocator , .{ . filename = ".env" } );
52+ var expanded_env = try Self .init (testing .allocator , ".env" );
5653 defer expanded_env .deinit ();
5754 const expanded_env_count = expanded_env .map .count ();
5855
0 commit comments