From e86f4cb11467034822dd3ea1ebd8550b8cc84429 Mon Sep 17 00:00:00 2001 From: Seth Daniel Date: Tue, 27 Sep 2022 18:15:48 -0500 Subject: feat(yamlfmt): use the pre-built binary package (#473) This no longer requires 'go' to build. --- lua/mason-registry/yamlfmt/init.lua | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'lua') diff --git a/lua/mason-registry/yamlfmt/init.lua b/lua/mason-registry/yamlfmt/init.lua index d341e032..4ad9e02a 100644 --- a/lua/mason-registry/yamlfmt/init.lua +++ b/lua/mason-registry/yamlfmt/init.lua @@ -1,5 +1,9 @@ local Pkg = require "mason-core.package" -local go = require "mason-core.managers.go" +local _ = require "mason-core.functional" +local platform = require "mason-core.platform" +local github = require "mason-core.managers.github" + +local coalesce, when = _.coalesce, _.when return Pkg.new { name = "yamlfmt", @@ -7,5 +11,25 @@ return Pkg.new { homepage = "https://github.com/google/yamlfmt", categories = { Pkg.Cat.Formatter }, languages = { Pkg.Lang.YAML }, - install = go.packages { "github.com/google/yamlfmt/cmd/yamlfmt", bin = { "yamlfmt" } }, + install = function(ctx) + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + github + .untargz_release_file({ + repo = "google/yamlfmt", + asset_file = coalesce( + when(platform.is.mac_arm64, release_file "yamlfmt_%s_Darwin_arm64.tar.gz"), + when(platform.is.mac_x64, release_file "yamlfmt_%s_Darwin_x86_64.tar.gz"), + when(platform.is.linux_arm64, release_file "yamlfmt_%s_Linux_arm64.tar.gz"), + when(platform.is.linux_x64, release_file "yamlfmt_%s_Linux_x86_64.tar.gz"), + when(platform.is.win_x86, release_file "yamlfmt_%s_Windows_i386.tar.gz"), + when(platform.is.win_x64, release_file "yamlfmt_%s_Windows_x86_64.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("yamlfmt", platform.is_win and "yamlfmt.exe" or "yamlfmt") + end, } -- cgit v1.2.3-70-g09d2