{"id":28073546,"url":"https://github.com/nissy/envexpand","last_synced_at":"2025-05-12T22:59:50.293Z","repository":{"id":57541979,"uuid":"168549393","full_name":"nissy/envexpand","owner":"nissy","description":"envexpand recursively replaces strings with environment variables.","archived":false,"fork":false,"pushed_at":"2019-07-18T15:09:37.000Z","size":46,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T22:59:44.902Z","etag":null,"topics":["environment","environment-variables","go"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nissy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-31T15:38:34.000Z","updated_at":"2023-08-29T10:02:13.000Z","dependencies_parsed_at":"2022-09-08T23:51:30.810Z","dependency_job_id":null,"html_url":"https://github.com/nissy/envexpand","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nissy%2Fenvexpand","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nissy%2Fenvexpand/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nissy%2Fenvexpand/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nissy%2Fenvexpand/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nissy","download_url":"https://codeload.github.com/nissy/envexpand/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253837406,"owners_count":21971982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["environment","environment-variables","go"],"created_at":"2025-05-12T22:59:49.646Z","updated_at":"2025-05-12T22:59:50.282Z","avatar_url":"https://github.com/nissy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# envexpand\nenvexpand is replace placeholders in strings recursively with environment variables.\n\n### install\n```bash\n$ go get -u github.com/nissy/envexpand\n```\n\n### example\n\nenvironment variable placeholder.\n\n`${VARIABLE_NAME}` \n\n\n```go\npackage main\n\nimport \"github.com/nissy/envexpand\"\n\ntype (\n    ABC struct {\n        A string\n        B []string\n        C map[int]string\n        D *D\n    }\n    D struct {\n        E string\n        F *F\n    }\n    F struct {\n        G int\n        H string\n        I []*I\n    }\n    I struct {\n        J string\n        K []map[int]string\n        L []string\n    }\n)\n\nfunc main() {\n    data := ABC{\n        A: \"${A}\",\n        B: []string{\n            \"${B}\",\n            \"${B}\",\n            \"${B}\",\n        },\n        D: \u0026D{\n            F: \u0026F{\n                I: []*I{\n                    {\n                        J: \"${J}\",\n                    },\n                    {\n                        J: \"${J}\",\n                        K: []map[int]string{\n                            {\n                                1: \"${K}\",\n                                2: \"${K}\",\n                            },\n                        },\n                        L: []string{\n                            \"${L}\",\n                            \"${L}\",\n                        },\n                    },\n                },\n            },\n        },\n    }\n\n    if err := envexpand.Do(\u0026data); err != nil {\n        panic(err)\n    }\n}\n```\n\n```bash\n$ echo A=$A B=$B J=$J K=$K L=$L\nA=AAAAA B=BBBBB J=JJJJJ K=KKKKK L=LLLLL\n```\n\n```\nmain.ABC{\n    A: \"AAAAA\",\n    B: []string{\n        \"BBBBB\",\n        \"BBBBB\",\n        \"BBBBB\",\n    },\n    C: map[int]string{},\n    D: \u0026main.D{\n        E: \"\",\n        F: \u0026main.F{\n            G: 0,\n            H: \"\",\n            I: []*main.I{\n                \u0026main.I{\n                    J: \"JJJJJ\",\n                    K: []map[int]string{},\n                    L: []string{},\n                },\n                \u0026main.I{\n                    J: \"JJJJJ\",\n                    K: []map[int]string{\n                        map[int]string{\n                            1: \"KKKKK\",\n                            2: \"KKKKK\",\n                        },\n                    },\n                    L: []string{\n                        \"LLLLL\",\n                        \"LLLLL\",\n                    },\n                },\n            },\n        },\n    },\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnissy%2Fenvexpand","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnissy%2Fenvexpand","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnissy%2Fenvexpand/lists"}