diff options
author | kylo252 <[email protected]> | 2022-04-06 16:24:39 +0200 |
---|---|---|
committer | kylo252 <[email protected]> | 2022-04-06 16:24:39 +0200 |
commit | 2d0ba75d036f5c465bd38eb97fc5195d59e6e504 (patch) | |
tree | dbbd3495f7894285a0388fdface0fbedf7973c7a /utils | |
parent | 23feb96bcc8182f19528298817617336b866eadb (diff) | |
parent | fcb16c0961cd2b6ca522a0b2088ad663fd605b85 (diff) |
Merge remote-tracking branch 'origin/rolling'
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ci/generate_new_lockfile.lua | 114 | ||||
-rw-r--r-- | utils/ci/generate_new_lockfile.sh | 19 | ||||
-rw-r--r-- | utils/installer/config.example.lua | 4 | ||||
-rw-r--r-- | utils/installer/config_win.example.lua | 4 | ||||
-rw-r--r-- | utils/installer/install.ps1 | 2 | ||||
-rw-r--r-- | utils/installer/uninstall.ps1 | 10 |
6 files changed, 146 insertions, 7 deletions
diff --git a/utils/ci/generate_new_lockfile.lua b/utils/ci/generate_new_lockfile.lua new file mode 100644 index 00000000..9f274597 --- /dev/null +++ b/utils/ci/generate_new_lockfile.lua @@ -0,0 +1,114 @@ +local sp = os.getenv "SNAPSHOT_PATH" + +local function call_proc(process, opts, cb) + local std_output = "" + local error_output = "" + + local function onread(_, is_stderr) + return function(err, data) + if data then + if is_stderr then + error_output = (error_output or "") .. err + else + std_output = (std_output or "") .. data + end + end + end + end + + local uv = vim.loop + local handle + + local stdout = uv.new_pipe(false) + local stderr = uv.new_pipe(false) + + local stdio = { nil, stdout, stderr } + + handle = uv.spawn( + process, + { args = opts.args, cwd = uv.cwd(), stdio = stdio }, + vim.schedule_wrap(function(code) + if code ~= 0 then + stdout:read_stop() + stderr:read_stop() + end + + local check = uv.new_check() + check:start(function() + for _, pipe in ipairs(stdio) do + if pipe and not pipe:is_closing() then + return + end + end + check:stop() + handle:close() + cb(code, std_output, error_output) + end) + end) + ) + + uv.read_start(stdout, onread(handle, false)) + uv.read_start(stderr, onread(handle, true)) + + return handle +end + +local plugins_list = {} + +local completed = 0 + +local function write_lockfile(verbose) + local default_plugins = {} + local active_jobs = {} + + local core_plugins = require "lvim.plugins" + for _, plugin in pairs(core_plugins) do + local name = plugin[1]:match "/(%S*)" + local url = "https://github.com/" .. plugin[1] + local commit = "" + table.insert(default_plugins, { + name = name, + url = url, + commit = commit, + }) + end + + table.sort(default_plugins, function(a, b) + return a.name < b.name + end) + + for _, entry in pairs(default_plugins) do + local on_done = function(success, result, errors) + completed = completed + 1 + if not success then + print("error: " .. errors) + return + end + local latest_sha = result:gsub("\tHEAD\n", ""):sub(1, 7) + plugins_list[entry.name] = { + commit = latest_sha, + } + end + + local handle = call_proc("git", { args = { "ls-remote", entry.url, "HEAD" } }, on_done) + table.insert(active_jobs, handle) + end + + print("active: " .. #active_jobs) + print("parsers: " .. #default_plugins) + + vim.wait(#active_jobs * 60 * 1000, function() + return completed == #active_jobs + end) + + if verbose then + print(vim.inspect(plugins_list)) + end + + local fd = assert(io.open(sp, "w")) + fd:write(vim.json.encode(plugins_list), "\n") + fd:flush() +end + +write_lockfile() +vim.cmd "q" diff --git a/utils/ci/generate_new_lockfile.sh b/utils/ci/generate_new_lockfile.sh new file mode 100644 index 00000000..077df41f --- /dev/null +++ b/utils/ci/generate_new_lockfile.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e + +REPO_DIR=$(git rev-parse --show-toplevel) + +export SNAPSHOT_NAME="default.json" +export SNAPSHOT_DIR="${REPO_DIR}/snapshots" + +mkdir -p "${SNAPSHOT_DIR}" + +export SNAPSHOT_PATH="${REPO_DIR}/snapshots/${SNAPSHOT_NAME}" + +time lvim --headless \ + -c "luafile ./utils/ci/generate_new_lockfile.lua" + +temp=$(mktemp) + +jq --sort-keys . "${SNAPSHOT_PATH}" >"${temp}" +mv "${temp}" "${SNAPSHOT_PATH}" diff --git a/utils/installer/config.example.lua b/utils/installer/config.example.lua index 4ea98fbe..409235a5 100644 --- a/utils/installer/config.example.lua +++ b/utils/installer/config.example.lua @@ -46,10 +46,10 @@ lvim.keys.normal_mode["<C-s>"] = ":w<cr>" -- name = "+Trouble", -- r = { "<cmd>Trouble lsp_references<cr>", "References" }, -- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" }, --- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnostics" }, +-- d = { "<cmd>Trouble document_diagnostics<cr>", "Diagnostics" }, -- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" }, -- l = { "<cmd>Trouble loclist<cr>", "LocationList" }, --- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnostics" }, +-- w = { "<cmd>Trouble workspace_diagnostics<cr>", "Wordspace Diagnostics" }, -- } -- TODO: User Config for predefined plugins diff --git a/utils/installer/config_win.example.lua b/utils/installer/config_win.example.lua index 9c9888a8..ecfbd1e4 100644 --- a/utils/installer/config_win.example.lua +++ b/utils/installer/config_win.example.lua @@ -63,10 +63,10 @@ lvim.keys.normal_mode["<C-s>"] = ":w<cr>" -- name = "+Trouble", -- r = { "<cmd>Trouble lsp_references<cr>", "References" }, -- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" }, --- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnostics" }, +-- d = { "<cmd>Trouble document_diagnostics<cr>", "Diagnostics" }, -- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" }, -- l = { "<cmd>Trouble loclist<cr>", "LocationList" }, --- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnostics" }, +-- w = { "<cmd>Trouble workspace_diagnostics<cr>", "Workspace Diagnostics" }, -- } -- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile diff --git a/utils/installer/install.ps1 b/utils/installer/install.ps1 index bef15ac2..182e7bac 100644 --- a/utils/installer/install.ps1 +++ b/utils/installer/install.ps1 @@ -267,7 +267,7 @@ function create_alias { return } - Add-Content -Path $PROFILE -Value $("Set-Alias lvim $lvim_bin") + Add-Content -Path $PROFILE -Value $("`r`nSet-Alias lvim $lvim_bin") Write-Host 'To use the new alias in this window reload your profile with: `. $PROFILE`' -ForegroundColor Green } diff --git a/utils/installer/uninstall.ps1 b/utils/installer/uninstall.ps1 index 4d6ffa5d..2de21037 100644 --- a/utils/installer/uninstall.ps1 +++ b/utils/installer/uninstall.ps1 @@ -49,9 +49,15 @@ function remove_lvim_dirs($force) { if (Test-Path $dir) {
Remove-Item -Force -Recurse $dir
}
- if ($force -eq $true -and (Test-Path "$dir.bak" -or Test-Path "$dir.old")) {
- Remove-Item -Force -Recurse "$dir.{bak,old}"
+ if ($force -eq $true) {
+ if (Test-Path "$dir.bak") {
+ Remove-Item -Force -Recurse "$dir.bak"
+ }
+ if (Test-Path "$dir.old") {
+ Remove-Item -Force -Recurse "$dir.old"
+ }
}
}
}
+main($args)
\ No newline at end of file |