Skip to content

Commit

Permalink
feat: added "Lazy check" to check for updates without updating
Browse files Browse the repository at this point in the history
  • Loading branch information
folke committed Nov 29, 2022
1 parent d486bc5 commit 63cf2a5
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
- [x] Config in multiple files
- [x] Patterns for local packages
- [x] Profiling
- [ ] lockfile
- [ ] check for updates
- [x] lockfile
- [x] check for updates
- [ ] package.lua
- [ ] package-lock.lua
- [x] tag/version support `git tag --sort version:refname`
Expand Down
14 changes: 14 additions & 0 deletions lua/lazy/manage/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,20 @@ function M.update(opts)
end)
end

function M.check(opts)
opts = opts or {}
M.run({
pipeline = {
"git.fetch",
"wait",
{ "git.log", check = true },
},
plugins = function(plugin)
return plugin.uri and plugin._.installed
end,
}, opts)
end

---@param opts? ManagerOpts
function M.log(opts)
M.run({
Expand Down
8 changes: 6 additions & 2 deletions lua/lazy/manage/task/git.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ local Lock = require("lazy.manage.lock")
local M = {}

M.log = {
---@param opts {since?: string, updated?:boolean}
---@param opts {since?: string, updated?:boolean, check?: boolean}
skip = function(plugin, opts)
if opts.updated and not (plugin._.updated and plugin._.updated.from ~= plugin._.updated.to) then
return true
end
return not Util.file_exists(plugin.dir .. "/.git")
end,
---@param opts {since?: string, updated?:boolean}
---@param opts {since?: string, updated?:boolean, check?:boolean}
run = function(self, opts)
local args = {
"log",
Expand All @@ -26,6 +26,10 @@ M.log = {

if opts.updated then
table.insert(args, self.plugin._.updated.from .. ".." .. (self.plugin._.updated.to or "HEAD"))
elseif opts.check then
local info = assert(Git.info(self.plugin.dir))
local target = assert(Git.get_target(self.plugin))
table.insert(args, info.commit .. ".." .. target.commit)
else
table.insert(args, "--since=" .. (opts.since or "7 days ago"))
end
Expand Down
3 changes: 3 additions & 0 deletions lua/lazy/view/commands.lua
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ M.commands = {
update = function()
Manage.update({ clear = true, interactive = true })
end,
check = function()
Manage.check({ clear = true, interactive = true })
end,
restore = function()
Manage.update({ clear = true, interactive = true, lockfile = true })
end,
Expand Down

0 comments on commit 63cf2a5

Please sign in to comment.