aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/servers/solc/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-lsp-installer/servers/solc/init.lua')
-rw-r--r--lua/nvim-lsp-installer/servers/solc/init.lua31
1 files changed, 14 insertions, 17 deletions
diff --git a/lua/nvim-lsp-installer/servers/solc/init.lua b/lua/nvim-lsp-installer/servers/solc/init.lua
index bdd2b331..941399ae 100644
--- a/lua/nvim-lsp-installer/servers/solc/init.lua
+++ b/lua/nvim-lsp-installer/servers/solc/init.lua
@@ -1,36 +1,33 @@
local server = require "nvim-lsp-installer.server"
local Data = require "nvim-lsp-installer.data"
-local context = require "nvim-lsp-installer.installers.context"
local platform = require "nvim-lsp-installer.platform"
-local std = require "nvim-lsp-installer.installers.std"
local process = require "nvim-lsp-installer.process"
+local github = require "nvim-lsp-installer.core.managers.github"
+local std = require "nvim-lsp-installer.core.managers.std"
local coalesce, when = Data.coalesce, Data.when
return function(name, root_dir)
- local bin_name = platform.is_win and "solc.exe" or "solc"
return server.Server:new {
name = name,
root_dir = root_dir,
homepage = "https://github.com/ethereum/solidity",
languages = { "solidity" },
- installer = {
- context.use_github_release_file(
- "ethereum/solidity",
- coalesce(
+ async = true,
+ installer = function()
+ local source = github.release_file {
+ repo = "ethereum/solidity",
+ asset_file = coalesce(
when(platform.is_mac, "solc-macos"),
when(platform.is_linux, "solc-static-linux"),
when(platform.is_win, "solc-windows.exe")
- )
- ),
- context.capture(function(ctx)
- return std.download_file(ctx.github_release_file, bin_name)
- end),
- std.chmod("+x", { bin_name }),
- context.receipt(function(receipt, ctx)
- receipt:with_primary_source(receipt.github_release_file(ctx))
- end),
- },
+ ),
+ }
+ source.with_receipt()
+ local bin_name = platform.is_win and "solc.exe" or "solc"
+ std.download_file(source.download_url, bin_name)
+ std.chmod("+x", { bin_name })
+ end,
default_options = {
cmd_env = {
PATH = process.extend_path { root_dir },