gruntwork-io / gruntwork-io/fetch

Support for fetching multiple tools using some declarative configuration

Open
#107 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.