summaryrefslogtreecommitdiff
path: root/utils/env/parser.go
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-01-15 15:53:17 +0530
committerBobby <[email protected]>2026-01-15 15:53:17 +0530
commitc8d0bbb5b54f5cec3ebb245f9a21d8a94b3bd944 (patch)
tree6a5c2500da90253ad07a0d5192071bb77f093d36 /utils/env/parser.go
downloadcafe-c8d0bbb5b54f5cec3ebb245f9a21d8a94b3bd944.tar.xz
cafe-c8d0bbb5b54f5cec3ebb245f9a21d8a94b3bd944.zip
Add initial project structure with Go Fiber framework and environment configuration
Diffstat (limited to 'utils/env/parser.go')
-rw-r--r--utils/env/parser.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/utils/env/parser.go b/utils/env/parser.go
new file mode 100644
index 0000000..c1fdb53
--- /dev/null
+++ b/utils/env/parser.go
@@ -0,0 +1,28 @@
+package env
+
+func Parse(config any) error {
+ elem, t, err := validateConfigInput(config)
+ if err != nil {
+ return err
+ }
+
+ for i := range elem.NumField() {
+ field := elem.Field(i)
+ fieldType := t.Field(i)
+
+ if !field.CanSet() {
+ continue
+ }
+
+ envKey := fieldType.Tag.Get("env")
+ defaultVal := fieldType.Tag.Get("default")
+
+ if envKey == "" {
+ continue
+ }
+
+ setFieldFromEnv(field, envKey, defaultVal)
+ }
+
+ return nil
+}