diff options
Diffstat (limited to 'xmake/modules/package/manager/yum/install.lua')
| -rw-r--r-- | xmake/modules/package/manager/yum/install.lua | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/xmake/modules/package/manager/yum/install.lua b/xmake/modules/package/manager/yum/install.lua index dcbffbc02..581f557e0 100644 --- a/xmake/modules/package/manager/yum/install.lua +++ b/xmake/modules/package/manager/yum/install.lua @@ -25,6 +25,7 @@ -- imports import("core.base.option") import("lib.detect.find_tool") +import("privilege.sudo") -- install package -- @@ -50,9 +51,35 @@ function main(name, opt) table.insert(argv, "--verbose") end - -- TODO sudo - -- install package - os.vrunv(yum.program, argv) + -- install package directly if the current user is root + if os.isroot() then + os.vrunv(yum.program, argv) + -- install with administrator permission? + elseif sudo.has() then + + -- get confirm + local confirm = option.get("yes") + if confirm == nil then + + -- show tips + cprint("${bright yellow}note: ${default yellow}try to install %s with administrator permission?", name) + cprint("please input: y (y/n)") + + -- get answer + io.flush() + local answer = io.read() + if answer == 'y' or answer == '' then + confirm = true + end + end + + -- install it if be confirmed + if confirm then + sudo.vrunv(yum.program, argv) + end + else + return false + end -- ok return true |
