{"id":17311255,"url":"https://github.com/rockstorm101/binplate","last_synced_at":"2026-05-16T13:04:23.207Z","repository":{"id":116363338,"uuid":"591451496","full_name":"rockstorm101/binplate","owner":"rockstorm101","description":"Templating in Bash","archived":false,"fork":false,"pushed_at":"2023-02-19T18:15:28.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-28T19:49:59.522Z","etag":null,"topics":["bash","cli","config","template"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/rockstorm101.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":"2023-01-20T19:43:54.000Z","updated_at":"2023-01-23T14:02:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"10cbf86b-fade-4059-b27e-f79e17d7a00b","html_url":"https://github.com/rockstorm101/binplate","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rockstorm101/binplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstorm101%2Fbinplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstorm101%2Fbinplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstorm101%2Fbinplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstorm101%2Fbinplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rockstorm101","download_url":"https://codeload.github.com/rockstorm101/binplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstorm101%2Fbinplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33103971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bash","cli","config","template"],"created_at":"2024-10-15T12:39:56.500Z","updated_at":"2026-05-16T13:04:23.173Z","avatar_url":"https://github.com/rockstorm101.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BinPlate\n![Version][b1]\n\nTemplate processor written in Bash.\n```\n                 config(s)\n                    |\n                    v\n  input        +----------+\n  template --\u003e | binplate | --\u003e output\n               +----------+\n```\n\nGiven a template like:\n```\nHello {{ .name }}, Welcome to {{ .site }}!\n```\n\nAnd a configuration file like:\n```yaml\nname: John\nsite: Paradise\n```\n\n`binplate` will output:\n```\nHello Jonh, Welcome to Paradise!\n```\n\n### Features\n\n * **Plenty of configuration file formats**\n   It uses ['fq'][1] to read from configuration files. Therefore, it\n   supports all the [formats supported by 'fq'][2]. Which includes\n   many binary and text formats.\n\n * **Piping and scripting**\n   It can take input from 'stdin' and output to 'stdout'. Therefore\n   its input/output can be piped to other programs/tools.\n\n * **Multiple configuration files**\n   It can read configuration from several files and apply them in\n   order of preference.\n\n * **Custom templates**\n   Several options allow adapting `binplate` to different template\n   placeholders formats.\n\n[1]: https://github.com/wader/fq\n[2]: https://github.com/wader/fq#supported-formats\n\n\n### Dependencies\n\n * Bash\n * [fq][1] [^1]\n\n\n### Usage\n\nThe above example is produced with:\n```bash\necho 'Hello {{ .name }}, Welcome to {{ .site }}!' | ./binplate.sh /path/to/config.yml\n```\n\nRunning `./binplate.sh --help`:\n```\nUsage: binplate [options] FILE [FILE...]\n\nRead a template, fill in placeholders in accordance with the values\nstored in configuration FILE and output the result. By default, the\ntemplate is read from stdin and output is sent to stdout. If more than\none FILE is given, configurations from the first FILE will be\npreferred over the second one and so on.\n\nBy default, template placeholders are expected to be in the form\n'{{ placeholder }}'.\n\nIt uses 'fq' to read from configuration FILE. Therefore, it supports\nall the formats supported by 'fq'.\n\nOptions:\n  -b, --blanks       Allow for missing values in configuration FILE\n                     and replace them with blanks instead of failing\n  -f, --fq-options OPTS\n                     Options for the 'fq' command (e.g. '-d yaml')\n  -h, --help         Print this help and exit\n  -i, --input FILE   Input file (default: stdin)\n  -l, --left-delimiter STR\n                     String that delimits placeholders from the left\n                     (default: '{{ ')\n  -o, --output FILE  Output file (default: stdout)\n  -r, --right-delimiter STR\n                     String that delimits placeholders from the right\n                     (default: ' }}')\n  -v, --verbose      Print script debug info\n```\n\n### Testing\n\nTest suite uses the [BATS][3] framework. Running from the project root:\n```\nbats test/\n```\n\n[3]: https://github.com/bats-core/bats-core\n\n### Credits\n\nFlow diagram drawn with [asciiflow][4].\n\n[4]: https://asciiflow.com\n\n\n### License\n\n```\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at\nyour option) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n```\n\nSee full [license information][5].\n\n[5]: ./LICENSE\n\n\n[^1]: Available on Debian/Ubuntu systems with just `apt install fq`.\n\n\n[b1]: https://img.shields.io/github/v/release/rockstorm101/binplate?include_prereleases\u0026label=version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockstorm101%2Fbinplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frockstorm101%2Fbinplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockstorm101%2Fbinplate/lists"}