This commit introduces the getConventions function, which does a one-time calculation
for the changes in packaging conventions to propagate to the getArch and getOS
functions.
It updates those functions and the installer code to leverage the conventions.
Finally, it updates the test arrangement for getArch and getOS to use test cases
instead of repeating the same test over and over and adds unit tests for the new
getConventions function.
Prior to this change, the URL building for versions of hugo was
deterministic as the URLs for the packages were set to a
project-specific standard. That URL creation began to fail for macOS in
[0.102.0] and for Windows in [0.103.0]. It does not fail for Linux
because the hugo releases for Linux continue to include the old package
naming as an alias.
This change:
- Updates the `get-os` function to take the hugo version as additional
input, altering the return value based on the version.
- Updates the `get-arch` function to take the operating system name and
hugo version as additional input, altering the return value based on
both. Including the OS name is required for handling macOS.
- Fixes#608
- Fixes#605
[0.102.0]: https://github.com/gohugoio/hugo/releases/tag/v0.102.0
[0.103.0]: https://github.com/gohugoio/hugo/releases/tag/v0.103.0