summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-08-18 00:47:49 +0800
committerruki <[email protected]>2021-08-18 00:47:49 +0800
commit00107046b0c8eb07185b24783b2d32114f9ed760 (patch)
tree8fc2df521d35fcea98d51d9dd87afe68a1785ee4
parent139d4b590a4ad763f0c9e43f59e8281383e4212b (diff)
add require --upgrade
-rw-r--r--xmake/actions/require/main.lua2
-rw-r--r--xmake/actions/require/xmake.lua1
-rw-r--r--xmake/modules/private/action/require/impl/package.lua4
-rw-r--r--xmake/modules/private/action/require/install.lua2
4 files changed, 6 insertions, 3 deletions
diff --git a/xmake/actions/require/main.lua b/xmake/actions/require/main.lua
index eb0e2014e..41b9a7eac 100644
--- a/xmake/actions/require/main.lua
+++ b/xmake/actions/require/main.lua
@@ -118,7 +118,7 @@ function main()
scan(option.get("requires"))
- -- install and update all outdated package dependencies by default if no arguments
+ -- install and upgrade all outdated package dependencies by default if no arguments
else
install(option.get("requires"))
end
diff --git a/xmake/actions/require/xmake.lua b/xmake/actions/require/xmake.lua
index a9d4db32c..f33188f77 100644
--- a/xmake/actions/require/xmake.lua
+++ b/xmake/actions/require/xmake.lua
@@ -72,6 +72,7 @@ task("require")
, {'s', "search", "k", nil, "Search for the given packages from repositories.",
"e.g.",
" $ xmake require --search tbox" }
+ , {nil, "upgrade", "k", nil, "Upgrade the installed packages." }
, {nil, "uninstall", "k", nil, "Uninstall the installed packages.",
"e.g.",
" $ xmake require --uninstall",
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 5dc0ff451..53e978f9a 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -204,7 +204,9 @@ end
-- has locked requires?
function _has_locked_requires()
- return project.policy("package.requires_lock") and os.isfile(project.requireslock())
+ if not option.get("upgrade") then
+ return project.policy("package.requires_lock") and os.isfile(project.requireslock())
+ end
end
-- get locked requires
diff --git a/xmake/modules/private/action/require/install.lua b/xmake/modules/private/action/require/install.lua
index 821991dee..e27e627cb 100644
--- a/xmake/modules/private/action/require/install.lua
+++ b/xmake/modules/private/action/require/install.lua
@@ -76,7 +76,7 @@ function main(requires_raw)
--
-- attempt to install git from the builtin-packages first if git not found
--
- if git and not repository.pulled() then
+ if git and (not repository.pulled() or option.get("upgrade")) then
task.run("repo", {update = true})
end