From cb143527bc830df298613ff5a8ff32ee7f6cb9f0 Mon Sep 17 00:00:00 2001 From: Saikari Date: Sat, 11 Jul 2026 06:12:51 +0300 Subject: fix: enhance plugin management with rollback and confirmation features --- xmake/plugins/plugin/main.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'xmake/plugins/plugin/main.lua') diff --git a/xmake/plugins/plugin/main.lua b/xmake/plugins/plugin/main.lua index 4045fb053..e12a433e2 100644 --- a/xmake/plugins/plugin/main.lua +++ b/xmake/plugins/plugin/main.lua @@ -201,8 +201,9 @@ end -- remove the given installed plugin function _remove() local name = assert(option.get("plugins"), "please specify the plugin name to be removed!") - -- avoid escaping the plugins directory, e.g. `xmake plugin --remove ../foo` - assert(not name:find("..", 1, true) and not name:find("[/\\:]"), "invalid plugin name(%s)!", name) + -- avoid escaping the plugins directory, e.g. `xmake plugin --remove ../foo`, + -- and `.` or the empty name will be resolved to the plugins directory itself + assert(name ~= "" and name ~= "." and not name:find("..", 1, true) and not name:find("[/\\:]"), "invalid plugin name(%s)!", name) local plugindir = path.join(global.directory(), "plugins", name) assert(os.isdir(plugindir), "plugin(%s) not found!", name) os.rmdir(plugindir) -- cgit v1.3.1