From 41d7ccc69187d460c8155ba93e941fe0e85a796e Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 19 Jan 2019 19:14:36 +0800 Subject: rename package.manager.install to install_package --- xmake/modules/package/manager/apt/install.lua | 83 --------------------- .../package/manager/apt/install_package.lua | 83 +++++++++++++++++++++ xmake/modules/package/manager/brew/install.lua | 58 --------------- .../package/manager/brew/install_package.lua | 58 +++++++++++++++ .../modules/package/manager/conan/find_package.lua | 32 ++++++++ xmake/modules/package/manager/find_package.lua | 33 +++++++++ xmake/modules/package/manager/install.lua | 54 -------------- xmake/modules/package/manager/install_package.lua | 54 ++++++++++++++ xmake/modules/package/manager/pacman/install.lua | 86 ---------------------- .../package/manager/pacman/install_package.lua | 86 ++++++++++++++++++++++ xmake/modules/package/manager/yum/install.lua | 86 ---------------------- .../package/manager/yum/install_package.lua | 86 ++++++++++++++++++++++ xmake/repository/packages/g/git/xmake.lua | 2 +- 13 files changed, 433 insertions(+), 368 deletions(-) delete mode 100644 xmake/modules/package/manager/apt/install.lua create mode 100644 xmake/modules/package/manager/apt/install_package.lua delete mode 100644 xmake/modules/package/manager/brew/install.lua create mode 100644 xmake/modules/package/manager/brew/install_package.lua create mode 100644 xmake/modules/package/manager/conan/find_package.lua create mode 100644 xmake/modules/package/manager/find_package.lua delete mode 100644 xmake/modules/package/manager/install.lua create mode 100644 xmake/modules/package/manager/install_package.lua delete mode 100644 xmake/modules/package/manager/pacman/install.lua create mode 100644 xmake/modules/package/manager/pacman/install_package.lua delete mode 100644 xmake/modules/package/manager/yum/install.lua create mode 100644 xmake/modules/package/manager/yum/install_package.lua diff --git a/xmake/modules/package/manager/apt/install.lua b/xmake/modules/package/manager/apt/install.lua deleted file mode 100644 index 12eed657b..000000000 --- a/xmake/modules/package/manager/apt/install.lua +++ /dev/null @@ -1,83 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015 - 2019, TBOOX Open Source Group. --- --- @author ruki --- @file install.lua --- - --- imports -import("core.base.option") -import("lib.detect.find_tool") -import("privilege.sudo") - --- install package --- --- @param name the package name --- @param opt the options, .e.g {verbose = true, apt = "the package name"} --- --- @return true or false --- -function main(name, opt) - - -- init options - opt = opt or {} - - -- find apt - local apt = find_tool("apt") - if not apt then - return false - end - - -- init argv - local argv = {"install", "-y", opt.apt or name} - - -- install package directly if the current user is root - if os.isroot() then - os.vrunv(apt.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 color.warning}note: ${clear}try installing %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(apt.program, argv) - end - else - return false - end - - -- ok - return true -end diff --git a/xmake/modules/package/manager/apt/install_package.lua b/xmake/modules/package/manager/apt/install_package.lua new file mode 100644 index 000000000..419d87288 --- /dev/null +++ b/xmake/modules/package/manager/apt/install_package.lua @@ -0,0 +1,83 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- imports +import("core.base.option") +import("lib.detect.find_tool") +import("privilege.sudo") + +-- install package +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, apt = "the package name"} +-- +-- @return true or false +-- +function main(name, opt) + + -- init options + opt = opt or {} + + -- find apt + local apt = find_tool("apt") + if not apt then + return false + end + + -- init argv + local argv = {"install", "-y", opt.apt or name} + + -- install package directly if the current user is root + if os.isroot() then + os.vrunv(apt.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 color.warning}note: ${clear}try installing %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(apt.program, argv) + end + else + return false + end + + -- ok + return true +end diff --git a/xmake/modules/package/manager/brew/install.lua b/xmake/modules/package/manager/brew/install.lua deleted file mode 100644 index 0acb0c8a5..000000000 --- a/xmake/modules/package/manager/brew/install.lua +++ /dev/null @@ -1,58 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015 - 2019, TBOOX Open Source Group. --- --- @author ruki --- @file install.lua --- - --- imports -import("core.base.option") -import("lib.detect.find_tool") - --- install package --- --- @param name the package name --- @param opt the options, .e.g {verbose = true, brew = "the package name"} --- --- @return true or false --- -function main(name, opt) - - -- init options - opt = opt or {} - - -- find brew - local brew = find_tool("brew") - if not brew then - return false - end - - -- init argv - local argv = {"install", opt.brew or name} - if opt.verbose or option.get("verbose") then - table.insert(argv, "--verbose") - end - - -- install package - os.vrunv(brew.program, argv) - - -- ok - return true -end diff --git a/xmake/modules/package/manager/brew/install_package.lua b/xmake/modules/package/manager/brew/install_package.lua new file mode 100644 index 000000000..9f2a4dd92 --- /dev/null +++ b/xmake/modules/package/manager/brew/install_package.lua @@ -0,0 +1,58 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- imports +import("core.base.option") +import("lib.detect.find_tool") + +-- install package +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, brew = "the package name"} +-- +-- @return true or false +-- +function main(name, opt) + + -- init options + opt = opt or {} + + -- find brew + local brew = find_tool("brew") + if not brew then + return false + end + + -- init argv + local argv = {"install", opt.brew or name} + if opt.verbose or option.get("verbose") then + table.insert(argv, "--verbose") + end + + -- install package + os.vrunv(brew.program, argv) + + -- ok + return true +end diff --git a/xmake/modules/package/manager/conan/find_package.lua b/xmake/modules/package/manager/conan/find_package.lua new file mode 100644 index 000000000..bec025128 --- /dev/null +++ b/xmake/modules/package/manager/conan/find_package.lua @@ -0,0 +1,32 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file find_package.lua +-- + +-- find package using the conan package manager +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, version = "1.12.x") +-- +function main(name, opt) + +end diff --git a/xmake/modules/package/manager/find_package.lua b/xmake/modules/package/manager/find_package.lua new file mode 100644 index 000000000..8de7c483f --- /dev/null +++ b/xmake/modules/package/manager/find_package.lua @@ -0,0 +1,33 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file find_package.lua +-- + +-- find package using the package manager +-- +-- @param name the package name, e.g. zlib 1.12.x (try all), XMAKE::zlib 1.12.x, BREW::zlib, VCPKG::zlib, CONAN::OpenSSL/1.0.2n@conan/stable +-- @param opt the options, .e.g {verbose = true, version = "1.12.x") +-- +-- +function main(name, opt) + +end diff --git a/xmake/modules/package/manager/install.lua b/xmake/modules/package/manager/install.lua deleted file mode 100644 index 911646004..000000000 --- a/xmake/modules/package/manager/install.lua +++ /dev/null @@ -1,54 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015 - 2019, TBOOX Open Source Group. --- --- @author ruki --- @file install.lua --- - --- install package using third-party package manager --- --- @param name the package name --- @param opt the options, .e.g {verbose = true, brew = "the package name in brew", pacman = "xxx", apt = "xxx", yum = "xxx"} --- --- -function main(name, opt) - - -- init scripts - local scripts = {} - local host = os.host() - if host == "macosx" then - table.insert(scripts, import("brew.install", {anonymous = true})) - elseif host == "linux" then - table.insert(scripts, import("apt.install", {anonymous = true})) - table.insert(scripts, import("yum.install", {anonymous = true})) - table.insert(scripts, import("pacman.install", {anonymous = true})) - table.insert(scripts, import("brew.install", {anonymous = true})) - elseif host == "windows" then - table.insert(scripts, import("pacman.install", {anonymous = true})) -- msys/mingw - end - assert(#scripts > 0, "package manager not found!") - - -- run install script - for _, script in ipairs(scripts) do - if script(name, opt) then - break - end - end -end diff --git a/xmake/modules/package/manager/install_package.lua b/xmake/modules/package/manager/install_package.lua new file mode 100644 index 000000000..4981d5746 --- /dev/null +++ b/xmake/modules/package/manager/install_package.lua @@ -0,0 +1,54 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- install package using the package manager +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, brew = "the package name in brew", pacman = "xxx", apt = "xxx", yum = "xxx"} +-- +-- +function main(name, opt) + + -- init scripts + local scripts = {} + local host = os.host() + if host == "macosx" then + table.insert(scripts, import("brew.install_package", {anonymous = true})) + elseif host == "linux" then + table.insert(scripts, import("apt.install_package", {anonymous = true})) + table.insert(scripts, import("yum.install_package", {anonymous = true})) + table.insert(scripts, import("pacman.install_package", {anonymous = true})) + table.insert(scripts, import("brew.install_package", {anonymous = true})) + elseif host == "windows" then + table.insert(scripts, import("pacman.install_package", {anonymous = true})) -- msys/mingw + end + assert(#scripts > 0, "the package manager not found!") + + -- run install script + for _, script in ipairs(scripts) do + if script(name, opt) then + break + end + end +end diff --git a/xmake/modules/package/manager/pacman/install.lua b/xmake/modules/package/manager/pacman/install.lua deleted file mode 100644 index 3c7ae5e77..000000000 --- a/xmake/modules/package/manager/pacman/install.lua +++ /dev/null @@ -1,86 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015 - 2019, TBOOX Open Source Group. --- --- @author ruki --- @file install.lua --- - --- imports -import("core.base.option") -import("lib.detect.find_tool") -import("privilege.sudo") - --- install package --- --- @param name the package name --- @param opt the options, .e.g {verbose = true, pacman = "the package name"} --- --- @return true or false --- -function main(name, opt) - - -- init options - opt = opt or {} - - -- find pacman - local pacman = find_tool("pacman") - if not pacman then - return false - end - - -- init argv - local argv = {"-Sy", "--noconfirm", "--needed", opt.pacman or name} - if opt.verbose or option.get("verbose") then - table.insert(argv, "--verbose") - end - - -- install package directly if the current user is root - if os.isroot() then - os.vrunv(pacman.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 color.warning}note: ${clear}try installing %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(pacman.program, argv) - end - else - return false - end - - -- ok - return true -end diff --git a/xmake/modules/package/manager/pacman/install_package.lua b/xmake/modules/package/manager/pacman/install_package.lua new file mode 100644 index 000000000..cfdabd30c --- /dev/null +++ b/xmake/modules/package/manager/pacman/install_package.lua @@ -0,0 +1,86 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- imports +import("core.base.option") +import("lib.detect.find_tool") +import("privilege.sudo") + +-- install package +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, pacman = "the package name"} +-- +-- @return true or false +-- +function main(name, opt) + + -- init options + opt = opt or {} + + -- find pacman + local pacman = find_tool("pacman") + if not pacman then + return false + end + + -- init argv + local argv = {"-Sy", "--noconfirm", "--needed", opt.pacman or name} + if opt.verbose or option.get("verbose") then + table.insert(argv, "--verbose") + end + + -- install package directly if the current user is root + if os.isroot() then + os.vrunv(pacman.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 color.warning}note: ${clear}try installing %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(pacman.program, argv) + end + else + return false + end + + -- ok + return true +end diff --git a/xmake/modules/package/manager/yum/install.lua b/xmake/modules/package/manager/yum/install.lua deleted file mode 100644 index 6465f7c0b..000000000 --- a/xmake/modules/package/manager/yum/install.lua +++ /dev/null @@ -1,86 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015 - 2019, TBOOX Open Source Group. --- --- @author ruki --- @file install.lua --- - --- imports -import("core.base.option") -import("lib.detect.find_tool") -import("privilege.sudo") - --- install package --- --- @param name the package name --- @param opt the options, .e.g {verbose = true, yum = "the package name"} --- --- @return true or false --- -function main(name, opt) - - -- init options - opt = opt or {} - - -- find yum - local yum = find_tool("yum") - if not yum then - return false - end - - -- init argv - local argv = {"install", "-y", opt.yum or name} - if opt.verbose or option.get("verbose") then - table.insert(argv, "--verbose") - end - - -- 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 color.warning}note: ${clear}try installing %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 -end diff --git a/xmake/modules/package/manager/yum/install_package.lua b/xmake/modules/package/manager/yum/install_package.lua new file mode 100644 index 000000000..4986df28a --- /dev/null +++ b/xmake/modules/package/manager/yum/install_package.lua @@ -0,0 +1,86 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- imports +import("core.base.option") +import("lib.detect.find_tool") +import("privilege.sudo") + +-- install package +-- +-- @param name the package name +-- @param opt the options, .e.g {verbose = true, yum = "the package name"} +-- +-- @return true or false +-- +function main(name, opt) + + -- init options + opt = opt or {} + + -- find yum + local yum = find_tool("yum") + if not yum then + return false + end + + -- init argv + local argv = {"install", "-y", opt.yum or name} + if opt.verbose or option.get("verbose") then + table.insert(argv, "--verbose") + end + + -- 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 color.warning}note: ${clear}try installing %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 +end diff --git a/xmake/repository/packages/g/git/xmake.lua b/xmake/repository/packages/g/git/xmake.lua index cfe711fda..74f000b65 100644 --- a/xmake/repository/packages/g/git/xmake.lua +++ b/xmake/repository/packages/g/git/xmake.lua @@ -31,7 +31,7 @@ package("git") end) on_install("macosx", "linux", function (package) - import("package.manager.install")("git") + import("package.manager.install_package")("git") end) on_install("windows", function (package) -- cgit v1.3.1