The statically-embedded vmlinux release manifest.
priv/vmlinux/manifest.json is vendored verbatim from a pinned
github.com/harmont-dev/hyper-vmlinux release and read at compile time, so the
per-build SHA-256 sums (used by Hyper.Node.FireVMM.VmLinux.Provider to verify
downloads) are baked into the compiled module and cannot drift from what was
published. @external_resource forces a recompile if the file changes.
All functions here are pure; they never touch the network or the filesystem.
Summary
Functions
The download URL for build's asset on the pinned release.
All builds in the manifest.
All builds matching arch.
The default build for arch: the highest version, breaking ties toward the
shorter name (so a plain build wins over a variant like -no-acpi). Returns
nil if the manifest has no build for arch.
Look up a build by its name (e.g. "x86_64-6.1").
Functions
@spec asset_url(Hyper.Node.FireVMM.VmLinux.Manifest.Build.t()) :: String.t()
The download URL for build's asset on the pinned release.
@spec builds() :: [Hyper.Node.FireVMM.VmLinux.Manifest.Build.t()]
All builds in the manifest.
@spec builds_for(Sys.Arch.t()) :: [Hyper.Node.FireVMM.VmLinux.Manifest.Build.t()]
All builds matching arch.
@spec default_for(Sys.Arch.t()) :: Hyper.Node.FireVMM.VmLinux.Manifest.Build.t() | nil
The default build for arch: the highest version, breaking ties toward the
shorter name (so a plain build wins over a variant like -no-acpi). Returns
nil if the manifest has no build for arch.
@spec fetch(String.t()) :: {:ok, Hyper.Node.FireVMM.VmLinux.Manifest.Build.t()} | :error
Look up a build by its name (e.g. "x86_64-6.1").