gruntwork-io / gruntwork-io/fetch
Support for fetching multiple tools using some declarative configuration
- Dominant language
- Go
- Stars
- 624
- Forks
- 92
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the solution you'd like**
Add command line argument to specify a configuration file which would contain list of repositories to download in parallel.
My use case is to bootstrap environment using following algorithm.
1. download a bunch of tools and verify sha256 of each downloaded artifact.
2. Then do `chmod +x` for each one of them.
3. Finally only iff sha256 is verified move the file to its final destination
Bonus feature: Ability to specify dependencies between the tools to establish right installation order.
**Describe alternatives you've considered**
1. use `jq` to get list of targets and sha and combine it with shell scripts involving sha256,chmod,curl
2. put urls and SHAs into a bash array and iterate over in a function
None of the above solutions would be portable enough, cannot provide parallel downloads and decent error handling.
**Additional context**
There are similar tools. However there is none which do both batch artifact download and verification:
- https://github.com/hashicorp/go-getter
- https://github.com/devmatteini/dra
- https://github.com/izirku/gitrel
- https://github.com/zyedidia/eget
- https://github.com/egoist/bget
- https://github.com/aquaproj/aqua
- https://github.com/binqry/binq
- https://github.com/abdfnx/instal
- https://github.com/golgoth31/release-installer
Less relevant tools
- https://github.com/ellotheth/pipethis
- https://github.com/jbenet/hashpipe
- https://github.com/jpillora/installer
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.