From b8a6632a0f2d263199d5d480ca85477fe0f414ab Mon Sep 17 00:00:00 2001 From: William Boman Date: Mon, 20 Feb 2023 22:19:39 +0100 Subject: feat: configurable registries (#1016) --- scripts/lua/mason-scripts/mason/generate.lua | 13 ++++++++---- .../mason-scripts/mason/generate_package_index.lua | 24 +++------------------- .../templates/package-section.template.md | 8 -------- .../lua/mason-scripts/templates/parse_commit.lua | 16 --------------- 4 files changed, 12 insertions(+), 49 deletions(-) delete mode 100644 scripts/lua/mason-scripts/templates/parse_commit.lua (limited to 'scripts/lua/mason-scripts') diff --git a/scripts/lua/mason-scripts/mason/generate.lua b/scripts/lua/mason-scripts/mason/generate.lua index 48459fe2..8d99c717 100644 --- a/scripts/lua/mason-scripts/mason/generate.lua +++ b/scripts/lua/mason-scripts/mason/generate.lua @@ -9,6 +9,9 @@ local MASON_REGISTRY_DIR = path.concat { vim.loop.cwd(), "lua", "mason-registry" ---@async local function create_language_map() local registry = require "mason-registry" + require("mason-registry").set_registries { + "lua:mason-registry.index", + } print "Creating language map…" local indexed_languages = {} local language_map = {} @@ -42,7 +45,7 @@ local function create_package_index() print "Creating package index…" local packages = {} local to_lua_path = _.compose(_.gsub("/", "."), _.gsub("^lua/", "")) - for _, package_path in ipairs(vim.fn.glob("lua/mason-registry/*/init.lua", false, true)) do + for _, package_path in ipairs(vim.fn.glob("lua/mason-registry/index/*/init.lua", false, true)) do local package_filename = vim.fn.fnamemodify(package_path, ":h:t") local lua_path = to_lua_path(vim.fn.fnamemodify(package_path, ":h")) local pkg = require(lua_path) @@ -50,12 +53,14 @@ local function create_package_index() packages[pkg.name] = lua_path end - script_utils.write_file(path.concat { MASON_REGISTRY_DIR, "index.lua" }, "return " .. vim.inspect(packages), "w") + script_utils.write_file( + path.concat { MASON_REGISTRY_DIR, "index", "init.lua" }, + "return " .. vim.inspect(packages), + "w" + ) end a.run_blocking(function() create_package_index() - package.loaded["mason-registry"] = nil - package.loaded["mason-registry.index"] = nil create_language_map() end) diff --git a/scripts/lua/mason-scripts/mason/generate_package_index.lua b/scripts/lua/mason-scripts/mason/generate_package_index.lua index a3734b66..6b3f9864 100644 --- a/scripts/lua/mason-scripts/mason/generate_package_index.lua +++ b/scripts/lua/mason-scripts/mason/generate_package_index.lua @@ -1,34 +1,16 @@ local a = require "mason-core.async" -local control = require "mason-core.async.control" -local path = require "mason-core.path" local _ = require "mason-core.functional" local script_utils = require "mason-scripts.utils" local markdown = require "mason-scripts.markdown" -local spawn = require "mason-core.spawn" - -local Semaphore = control.Semaphore ---@async local function create_markdown_index() local registry = require "mason-registry" + require("mason-registry").set_registries { + "lua:mason-registry.index", + } print "Creating markdown index…" local packages = _.sort_by(_.prop "name", registry.get_all_packages()) - local sem = Semaphore.new(10) - - a.wait_all(_.map(function(pkg) - return function() - local permit = sem:acquire() - local history = spawn.git { - "log", - "--format=%h\t%cd\t%an\t%s", - "--date=short", - "--", - path.concat { "lua", "mason-registry", pkg.name, "init.lua" }, - } - permit:forget() - pkg.history = _.split("\n", _.trim(history:get_or_throw().stdout)) - end - end, packages)) script_utils.write_file( "PACKAGES.md", diff --git a/scripts/lua/mason-scripts/templates/package-section.template.md b/scripts/lua/mason-scripts/templates/package-section.template.md index f772c812..745c6099 100644 --- a/scripts/lua/mason-scripts/templates/package-section.template.md +++ b/scripts/lua/mason-scripts/templates/package-section.template.md @@ -1,5 +1,3 @@ -{# include "parse_commit" #} - # {{ name }} > {{ spec.desc }} @@ -8,12 +6,6 @@ Homepage: {% url(spec.homepage) %} Languages: {% join(each(spec.languages, wrap "`")) " " %} Categories: {% join(each(spec.categories, wrap "`")) " " %} -
- History: - -{% list(each(history, parse_commit)) %} -
- ``` :MasonInstall {{ name }} ``` diff --git a/scripts/lua/mason-scripts/templates/parse_commit.lua b/scripts/lua/mason-scripts/templates/parse_commit.lua deleted file mode 100644 index 2f7e7358..00000000 --- a/scripts/lua/mason-scripts/templates/parse_commit.lua +++ /dev/null @@ -1,16 +0,0 @@ -local _ = require "mason-core.functional" - -local linkify = _.gsub([[#(%d+)]], function(issue) - return ("[#%d](https://github.com/williamboman/mason.nvim/issues/%d)"):format(issue, issue) -end) - -return { - parse_commit = function(commit_str) - local commit = - _.compose(_.zip_table { "sha", "commit_date", "author_name", "subject" }, _.split "\t")(commit_str) - - return (_.dedent [[ - [`%s`](https://github.com/williamboman/mason.nvim/commit/%s) %s - %s by %s - ]]):format(commit.sha, commit.sha, commit.commit_date, linkify(commit.subject), commit.author_name) - end, -} -- cgit v1.2.3-70-g09d2