diff options
| author | William Boman <william@redwill.se> | 2022-07-08 14:54:32 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-08 14:54:32 +0200 |
| commit | a5d0b9a6233c7111859bbc10105d265084ac02f0 (patch) | |
| tree | 1dad3073b7a787efc647acf3e442db8e356c2765 /lua | |
| parent | fix!: remove dart-debug-adapter (#14) (diff) | |
| download | mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar.gz mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar.bz2 mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar.lz mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar.xz mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.tar.zst mason-a5d0b9a6233c7111859bbc10105d265084ac02f0.zip | |
feat: add firefox-debug-adapter (#16)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason/_generated/package_index.lua | 1 | ||||
| -rw-r--r-- | lua/mason/core/installer/context.lua | 16 | ||||
| -rw-r--r-- | lua/mason/packages/firefox-debug-adapter/init.lua | 27 | ||||
| -rw-r--r-- | lua/mason/packages/firefox-debug-adapter/patches.lua | 34 |
4 files changed, 78 insertions, 0 deletions
diff --git a/lua/mason/_generated/package_index.lua b/lua/mason/_generated/package_index.lua index 44f26273..939e3597 100644 --- a/lua/mason/_generated/package_index.lua +++ b/lua/mason/_generated/package_index.lua @@ -42,6 +42,7 @@ return { ["erlang-ls"] = "mason.packages.erlang-ls", esbonio = "mason.packages.esbonio", ["eslint-lsp"] = "mason.packages.eslint-lsp", + ["firefox-debug-adapter"] = "mason.packages.firefox-debug-adapter", ["flux-lsp"] = "mason.packages.flux-lsp", ["foam-language-server"] = "mason.packages.foam-language-server", fortls = "mason.packages.fortls", diff --git a/lua/mason/core/installer/context.lua b/lua/mason/core/installer/context.lua index ea5a7b90..1cdfc197 100644 --- a/lua/mason/core/installer/context.lua +++ b/lua/mason/core/installer/context.lua @@ -259,4 +259,20 @@ function InstallContext:link_bin(executable, rel_path) self.receipt:with_link("bin", executable, rel_path) end +---@param patches string[] +function InstallContext:apply_patches(patches) + for _, patch in ipairs(patches) do + self.spawn.patch { + "-g", + "0", + "-f", + on_spawn = function(_, stdio) + local stdin = stdio[1] + stdin:write(patch) + stdin:close() + end, + } + end +end + return InstallContext diff --git a/lua/mason/packages/firefox-debug-adapter/init.lua b/lua/mason/packages/firefox-debug-adapter/init.lua new file mode 100644 index 00000000..ac627a7c --- /dev/null +++ b/lua/mason/packages/firefox-debug-adapter/init.lua @@ -0,0 +1,27 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local git = require "mason.core.managers.git" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "firefox-debug-adapter", + desc = [[Debug your web application or browser extension in Firefox]], + homepage = "https://github.com/firefox-devtools/vscode-firefox-debug", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "firefox-devtools/vscode-firefox-debug" } + source.with_receipt() + git.clone { "https://github.com/firefox-devtools/vscode-firefox-debug", version = Optional.of(source.tag) } + ctx:apply_patches(require "mason.packages.firefox-debug-adapter.patches") + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "build" } + ctx.spawn.npm { "install", "--production" } + ctx:write_node_exec_wrapper("firefox-debug-adapter", path.concat { "dist", "adapter.bundle.js" }) + ctx:link_bin("firefox-debug-adapter", "firefox-debug-adapter") + end, +} diff --git a/lua/mason/packages/firefox-debug-adapter/patches.lua b/lua/mason/packages/firefox-debug-adapter/patches.lua new file mode 100644 index 00000000..2760d67c --- /dev/null +++ b/lua/mason/packages/firefox-debug-adapter/patches.lua @@ -0,0 +1,34 @@ +local fix_macos_build = [=====[ +diff --git a/webpack.config.js b/webpack.config.js +index 9aff0cf..ff9c74e 100644 +--- a/webpack.config.js ++++ b/webpack.config.js +@@ -1,6 +1,14 @@ + const path = require('path'); + const CopyPlugin = require('copy-webpack-plugin'); + ++const externals = { ++ vscode: 'commonjs vscode', ++}; ++ ++if (process.platform === "darwin") { ++ externals["fsevents"] = 'commonjs fsevents'; ++} ++ + module.exports = { + context: path.resolve(__dirname, 'src'), + entry: { +@@ -19,9 +27,7 @@ module.exports = { + } + ] + }, +- externals: { +- vscode: 'commonjs vscode' +- }, ++ externals, + output: { + path: path.resolve(__dirname, 'dist'), + filename: '[name].bundle.js', +]=====] + +return { fix_macos_build } |
