{"id":20483493,"url":"https://github.com/cbuschka/tfvm","last_synced_at":"2025-04-13T14:34:08.647Z","repository":{"id":46769993,"uuid":"258727497","full_name":"cbuschka/tfvm","owner":"cbuschka","description":"Terraform Version Manager - Always the right terraform version for your project","archived":false,"fork":false,"pushed_at":"2025-03-13T01:20:39.000Z","size":569,"stargazers_count":18,"open_issues_count":12,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T05:33:49.341Z","etag":null,"topics":["golang","terraform","tool","version-manager","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cbuschka.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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,"zenodo":null}},"created_at":"2020-04-25T08:54:58.000Z","updated_at":"2024-11-03T18:29:07.000Z","dependencies_parsed_at":"2024-05-14T08:25:44.171Z","dependency_job_id":"a01020d6-6a70-47e2-b0fc-ab125721d6c0","html_url":"https://github.com/cbuschka/tfvm","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Ftfvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Ftfvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Ftfvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Ftfvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbuschka","download_url":"https://codeload.github.com/cbuschka/tfvm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248728633,"owners_count":21152259,"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":["golang","terraform","tool","version-manager","wrapper"],"created_at":"2024-11-15T16:17:47.100Z","updated_at":"2025-04-13T14:34:08.627Z","avatar_url":"https://github.com/cbuschka.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tfvm - Terraform version manager\n[![Build](https://github.com/cbuschka/tfvm/workflows/build/badge.svg)](https://github.com/cbuschka/tfvm) [![Latest Release](https://img.shields.io/github/release/cbuschka/tfvm.svg)](https://github.com/cbuschka/tfvm/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/cbuschka/tfvm)](https://goreportcard.com/report/github.com/cbuschka/tfvm) [![License](https://img.shields.io/github/license/cbuschka/tfvm.svg)](https://github.com/cbuschka/tfvm/blob/main/license.txt)\n\n### Always the right terraform version for your project\n\n## Features\n* fully transparent\n* downloads and installs terraform version\n* select terraform version via .terraform-version\n* invoke selected terraform through tfvm\n* also available as [github action setup-tfvm](https://github.com/cbuschka/setup-tfvm) (fully transparent terraform setup)\n\n## System Requirements\n* Linux (386, amd64, arm64), macOS (amd64, arm64) or Windows (386, amd64)\n\n## Installation\n\n### as root in /usr/local/bin\n\n```\ncurl -sL https://raw.githubusercontent.com/cbuschka/tfvm/main/install.sh -o - | sudo bash\n```\n\n### as unpriviledged user in ```${HOME}/.local/bin``` if available, else ```${HOME}/bin``` as a fallback\n\n```\ncurl -sL https://raw.githubusercontent.com/cbuschka/tfvm/main/install.sh -o - | bash\n```\n\n### manual installation\n* Download tfvm from [latest release](https://github.com/cbuschka/tfvm/releases/latest) to your bin dir\n* Make executable ```chmod o+x tfvm```\n* Optionally link to tfvm as terraform ```ln -s tfvm terraform```\n\n## Usage\n\n### Show which terraform version would be executed\n```\ntfvm which\n```\n\n### List terraform versions\n```\ntfvm list\n```\n\n### Configure terraform version\n```\necho \"1.3.7\" \u003e .terraform-version\n\ntfvm which\n```\n\n\"latest\" and [semver ranges](https://github.com/hashicorp/go-version#version-constraints), e.g. ```\u003e= 1.3.0, \u003c1.4.0```, are also supported.\n\n### Invoke selected terraform\n```\ntfvm terraform version\n```\n\n### Tip: Call selected terraform directly\n```\nln -s tfvm terraform\n\nterraform version\n```\n\n### More commands via tfvm usage info\n```\ntfvm help\n```\n\n### Environment Variables\n[Supported Environment Variables](./doc/env-vars.md)\n\n## Development Requirements\n* Go 1.22.x, Linux or macOS for development\n* GNU make \u003e= 4.3\n\n## Similar tools\n* [tfenv](https://github.com/tfutils/tfenv) [(comparison)](./doc/tfvm-vs-tfenv-vs-terraform-switcher.md)\n* [terraform-switcher](https://github.com/warrensbox/terraform-switcher) [(comparison)](./doc/tfvm-vs-tfenv-vs-terraform-switcher.md)\n* [renatoassis01/tfvm](https://github.com/renatoassis01/tfvm)\n* [jkehres/tfvm](https://github.com/jkehres/tfvm)\n* [terraformw](https://objectpartners.com/2017/12/21/use-a-terraform-wrapper-script-to-easily-manage-terraform-installations/)\n* [tfswitch](https://github.com/warrensbox/terraform-switcher)\n* [terraform-installer](https://github.com/robertpeteuil/terraform-installer)\n* [tfw](https://github.com/stormbeta/tfw)\n\n## Contributing\nContributions are welcome!\n\n**By contributing you accept to contribute under the [license](./license.txt) of this project.**\n\n* [Fork](https://github.com/cbuschka/tfvm/fork) and clone the repository\n* Create a feature branch (git checkout -b foobar)\n* Commit your changes (git commit -am 'Add feature foobar')\n* Make sure the project builds and all tests are passing\n* Push to the branch (git push origin foobar)\n* Create a new pull request and describe what you want to achieve or fix\n\n## Contributors\n\n[![Contributors](https://contrib.rocks/image?repo=cbuschka/tfvm)](https://github.com/cbuschka/tfvm/graphs/contributors)\n\n## License\nCopyright (c) 2020-2021 by [Cornelius Buschka](https://github.com/cbuschka).\n\n[Apache License, Version 2.0](./license.txt)\n\n## Thanks!\nSpecial thanks goes to [JetBrains s.r.o.](https://www.jetbrains.com/) for supporting the development of this project with\na free [IntelliJ IDEA Ultimate ![IntelliJ IDEA](./doc/idea.png)](https://www.jetbrains.com/idea/download) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbuschka%2Ftfvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbuschka%2Ftfvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbuschka%2Ftfvm/lists"}