add arbitrary tag selection with *s
This commit is contained in:
188
lua/dep.lua
188
lua/dep.lua
@ -479,97 +479,105 @@ local function sync(package, cb)
|
||||
return
|
||||
end
|
||||
|
||||
if package.exists then
|
||||
if package.pin then
|
||||
cb()
|
||||
return
|
||||
end
|
||||
|
||||
local function log_err(err)
|
||||
logger:log("error", string.format("failed to update %s; reason: %s", package.id, err))
|
||||
end
|
||||
|
||||
proc.git_rev_parse(package.dir, "HEAD", function(err, before)
|
||||
if err then
|
||||
log_err(before)
|
||||
cb(err)
|
||||
else
|
||||
if package.commit then
|
||||
proc.git_checkout(package.dir, package.branch, package.commit, function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
cb(err)
|
||||
else
|
||||
proc.git_rev_parse(package.dir, package.commit, function(err, after)
|
||||
if err then
|
||||
log_err(after)
|
||||
cb(err)
|
||||
elseif before == after then
|
||||
logger:log("skip", string.format("skipped %s", package.id))
|
||||
cb(err)
|
||||
else
|
||||
mark_reconfigure(package)
|
||||
logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after))
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else
|
||||
proc.git_fetch(package.dir, "origin", package.branch or "HEAD", function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
cb(err)
|
||||
else
|
||||
proc.git_rev_parse(package.dir, "FETCH_HEAD", function(err, after)
|
||||
if err then
|
||||
log_err(after)
|
||||
cb(err)
|
||||
elseif before == after then
|
||||
logger:log("skip", string.format("skipped %s", package.id))
|
||||
cb(err)
|
||||
else
|
||||
proc.git_reset(package.dir, after, function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
else
|
||||
mark_reconfigure(package)
|
||||
logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after))
|
||||
end
|
||||
|
||||
cb(err)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
else
|
||||
proc.git_clone(package.dir, package.url, package.branch, function(err, message)
|
||||
if err then
|
||||
logger:log("error", string.format("failed to install %s; reason: %s", package.id, message))
|
||||
else
|
||||
if package.commit then
|
||||
proc.git_checkout(package.dir, package.branch, package.commit, function(err, message)
|
||||
if err then
|
||||
logger:log("error", string.format("failed to checkout %s; reason: %s", package.id, message))
|
||||
else
|
||||
package.exists = true
|
||||
mark_reconfigure(package)
|
||||
logger:log("install", string.format("installed %s", package.id))
|
||||
end
|
||||
end)
|
||||
else
|
||||
package.exists = true
|
||||
mark_reconfigure(package)
|
||||
logger:log("install", string.format("installed %s", package.id))
|
||||
end
|
||||
end
|
||||
|
||||
cb(err)
|
||||
end)
|
||||
local function log_err(err)
|
||||
logger:log("error", string.format("failed to update %s; reason: %s", package.id, err))
|
||||
end
|
||||
|
||||
proc.git_resolve_branch(package.url, package.branch, function(err, branch)
|
||||
if err then
|
||||
log_err(err)
|
||||
cb(err)
|
||||
end
|
||||
package.branch = branch
|
||||
|
||||
if package.exists then
|
||||
if package.pin then
|
||||
cb()
|
||||
return
|
||||
end
|
||||
|
||||
proc.git_rev_parse(package.dir, "HEAD", function(err, before)
|
||||
if err then
|
||||
log_err(before)
|
||||
cb(err)
|
||||
else
|
||||
if package.commit then
|
||||
proc.git_checkout(package.dir, package.branch, package.commit, function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
cb(err)
|
||||
else
|
||||
proc.git_rev_parse(package.dir, package.commit, function(err, after)
|
||||
if err then
|
||||
log_err(after)
|
||||
cb(err)
|
||||
elseif before == after then
|
||||
logger:log("skip", string.format("skipped %s", package.id))
|
||||
cb(err)
|
||||
else
|
||||
mark_reconfigure(package)
|
||||
logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after))
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else
|
||||
proc.git_fetch(package.dir, "origin", package.branch or "HEAD", function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
cb(err)
|
||||
else
|
||||
proc.git_rev_parse(package.dir, "FETCH_HEAD", function(err, after)
|
||||
if err then
|
||||
log_err(after)
|
||||
cb(err)
|
||||
elseif before == after then
|
||||
logger:log("skip", string.format("skipped %s", package.id))
|
||||
cb(err)
|
||||
else
|
||||
proc.git_reset(package.dir, after, function(err, message)
|
||||
if err then
|
||||
log_err(message)
|
||||
else
|
||||
mark_reconfigure(package)
|
||||
logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after))
|
||||
end
|
||||
|
||||
cb(err)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
else
|
||||
proc.git_clone(package.dir, package.url, package.branch, function(err, message)
|
||||
if err then
|
||||
logger:log("error", string.format("failed to install %s; reason: %s", package.id, message))
|
||||
else
|
||||
if package.commit then
|
||||
proc.git_checkout(package.dir, package.branch, package.commit, function(err, message)
|
||||
if err then
|
||||
logger:log("error", string.format("failed to checkout %s; reason: %s", package.id, message))
|
||||
else
|
||||
package.exists = true
|
||||
mark_reconfigure(package)
|
||||
logger:log("install", string.format("installed %s", package.id))
|
||||
end
|
||||
end)
|
||||
else
|
||||
package.exists = true
|
||||
mark_reconfigure(package)
|
||||
logger:log("install", string.format("installed %s", package.id))
|
||||
end
|
||||
end
|
||||
|
||||
cb(err)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local function sync_list(list, on_complete)
|
||||
|
Reference in New Issue
Block a user