{"id":21586744,"url":"https://github.com/behringer24/envprocgo","last_synced_at":"2026-07-21T07:57:09.905Z","repository":{"id":147000352,"uuid":"254007777","full_name":"behringer24/envprocgo","owner":"behringer24","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-01T21:07:26.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-24T15:41:52.103Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/behringer24.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-08T06:47:14.000Z","updated_at":"2023-03-22T08:34:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"4550443f-261e-44cb-b85a-cf0b161b0d31","html_url":"https://github.com/behringer24/envprocgo","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fenvprocgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fenvprocgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fenvprocgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/behringer24%2Fenvprocgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/behringer24","download_url":"https://codeload.github.com/behringer24/envprocgo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244189826,"owners_count":20412991,"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":[],"created_at":"2024-11-24T15:14:32.800Z","updated_at":"2025-10-18T02:24:21.388Z","avatar_url":"https://github.com/behringer24.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build + Test](https://github.com/behringer24/envprocgo/actions/workflows/go.yml/badge.svg)](https://github.com/behringer24/envprocgo/actions/workflows/go.yml)\n[![Release build](https://github.com/behringer24/envprocgo/actions/workflows/release.yml/badge.svg)](https://github.com/behringer24/envprocgo/actions/workflows/release.yml)\n# envproc\nEasy environment variable preprocessor for configuration files\n\n## Why\nWhen building docker containers you usually rely on environment variables as a source for configuration setting and exposing single settings to the user of the ready made containers. Unfortunately not all softwares allow the substitution of environment variables in their config files.\n\nHere envproc comes in handy. Ultra lightweight and easy to use while setting up your containers during build or even on startup time.\n\n## Installation\n\n### Dependencies\nenvproc is written in Go (Golang) and compiles to a single binary file.\n\n### Install the binary\nDownload the binary from envproc from github or clone the entire repository. Only the `envproc` file is needed. \n\n``` /bin/bash\n\u003e wget https://github.com/behringer24/envprocgo/releases/download/v1.0.3/envproc-v1.0.2-linux-amd64.tar.gz\n\u003e tar -xvzf envproc-v1.0.3-linux-amd64.tar.gz\n```\n\nor\n\n``` /bin/bash\n\u003e wget -qO- https://github.com/behringer24/envprocgo/releases/download/v1.0.3/envproc-v1.0.2-linux-amd64.tar.gz | tar xvz\n```\n\nAbove is an example for version v1.0.3. Check for newer versions here https://github.com/behringer24/envprocgo/releases\n\n### Install from source\nMake sure you have Go installed. Find more information here https://go.dev/dl/\n\nCheckout the sources of the main branch or a specific (latest) release tag.\n\n``` /bin/bash\n\u003e git clone git@github.com:behringer24/envprocgo.git\n```\n\nto install\n\n``` /bin/bash\n\u003e go install\n```\n\n## Usage\n\n### Getting help\nCall `envproc -h` or `envproc --help` to get the standard commandline help\n\n``` /bin/bash\n\u003e envproc -h\nenvproc\nConfig file preprocessor, inject environment variables into static config files\n\nUsage: envproc [-f] [-h] [-v] [-c] infile [outfile]\n\nFlags:\n-h, --help               Show this help text\n-v, --version            Show version information\n-f, --force              Show version information\n\nOptions:\n-c, --char               Another description (Default: $)\n\nPositional arguments:\ninfile                   File to read from\noutfile                  File to write to\n```\n\n### Getting the current version\nTo check the current version of the executable use\n\n``` /bin/bash\n\u003e envproc -v\nenvproc version v0.0.1\n```\n\n### Adding variables to config files\nBefore you can parse your configuration files you need to add markers that can be replaced by envproc.\n\n```\n[...]\nvariable_name = ${env:ENVNAME}\n[...]\n```\n\nIn this example the placeholder `${env:ENVNAME}` will be replaced with the value of the environment variable `ENVNAME`. If the variable is not set, envproc will stop execution and display an error. You can override the stopping with the `-f|--force` parameter.\n\nSo if you would like to put the value of the common `PATH` variable into your configuration file you would write:\n```\n[...]\napp_path_var = ${env:PATH}\n[...]\n```\n\n### Parsing your config files\nenvproc can be used in different ways, with the simple use of input- and output file or with streams/pipes stdin and stdout.\n\n#### Simple filenames for in and out\n```\n\u003eenvproc your_config_template.conf your_final_config.conf\n```\n\nThis will read `your_config_template.conf` as an input file template and write the processed results to `your_final_config.conf`.\n\n#### Using pipe for output\n```\n\u003e envproc your_config_template.conf \u003e your_config.conf\n```\n\n### Changing the prefix character\nAs default envproc uses `$` as the prefix character in the pattern it searches your configs for, like `${env:PATH}`. In some cases you might want to change it to another character. For this you can use the `--char` or `-c` option.\n\n```\n\u003e envproc -c % infile.conf outfile.conf\n```\n\nThe pattern envproc now looks for is `%{env:PATH}`.\n\n## License\n\nenvproc and anvprocgo are released under the GNU GENERAL PUBLIC LICENSE Version 3. See [LICENSE](https://github.com/behringer24/envprocgo/blob/main/LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbehringer24%2Fenvprocgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbehringer24%2Fenvprocgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbehringer24%2Fenvprocgo/lists"}