Using Hints
Hints help godyl choose the right asset to download, especially when multiple similar assets are available. For example:
hints:
# Require .zip extension on Windows, but allow deviations for other platforms
- pattern: .zip
match: '{{ if eq .OS "windows" }}required{{ else }}weighted{{ end }}'
type: endswith
See tools.yml for various examples of hints.
Conditional Logic
You can use conditional logic to customize behavior based on the platform:
# Skip Windows installation
skip:
reason: "Tool is not available on Windows"
condition: '{{ eq .OS "windows" }}'
Custom Commands
You can run custom commands after installation (or without installation).
commands:
- "mkdir -p {{ .Output }}"
- "chmod +x {{ .Output }}/{{ .Exe }}"
- "{{ .Output }}/{{ .Exe }} --configure"
Platform Inference
godyl tries to infer platform details from asset names. Here’s how different platforms are recognized:
Operating Systems
| OS | Inferred from |
|---|---|
| Linux | linux |
| Darwin | darwin, macos, mac, osx |
| Windows | windows, win |
| FreeBSD | freebsd |
| Android | android |
| NetBSD | netbsd |
| OpenBSD | openbsd |
Architectures
| Architecture | Inferred from |
|---|---|
| AMD64 | amd64, x86_64, x64, win64 |
| ARM64 | arm64, aarch64 |
| AMD32 | amd32, x86, i386, i686, win32, 386, 686 |
| ARM32 (v7) | armv7, armv7l, armhf |
| ARM32 (v6) | armv6, armv6l |
| ARM32 (v5) | armv5, armel |
| ARM32 (unknown) | arm |
Libraries
| Library | Inferred from |
|---|---|
| GNU | gnu |
| Musl | musl |
| MSVC | msvc |
| LibAndroid | android |