diff options
| author | ruki <[email protected]> | 2021-02-12 22:53:12 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-02-12 22:53:12 +0800 |
| commit | cc7678dfae7d945b34b8abc70f18e26b8045fd9e (patch) | |
| tree | 8f5959fb0ac52b39677530b40ad522e2aff385d2 /xmake/actions/require/impl/repository.lua | |
| parent | b29d4891a97dda8bc7a8b805651a77c0bb7698c0 (diff) | |
move require impl
Diffstat (limited to 'xmake/actions/require/impl/repository.lua')
| -rw-r--r-- | xmake/actions/require/impl/repository.lua | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/xmake/actions/require/impl/repository.lua b/xmake/actions/require/impl/repository.lua deleted file mode 100644 index 6fc72d49c..000000000 --- a/xmake/actions/require/impl/repository.lua +++ /dev/null @@ -1,113 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed 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-present, TBOOX Open Source Group. --- --- @author ruki --- @file repository.lua --- - --- imports -import("core.package.repository") - --- get all repositories -function repositories() - - -- get it from cache it - if _g._REPOSITORIES then - return _g._REPOSITORIES - end - - -- get all repositories (local first) - local repos = table.join(repository.repositories(false), repository.repositories(true)) - - -- save repositories - _g._REPOSITORIES = repos - - -- ok - return repos -end - --- the remote repositories have been pulled? -function pulled() - for _, repo in ipairs(repositories()) do - -- repository not found? or xmake has been re-installed - local updatefile = path.join(repo:directory(), "updated") - if not os.isdir(repo:directory()) or (os.isfile(updatefile) and os.mtime(os.programfile()) > os.mtime(updatefile)) then - return false - end - end - return true -end - --- get package directory from repositories -function packagedir(packagename, reponame) - - -- strip trailng ~tag, e.g. zlib~debug - if packagename:find('~', 1, true) then - packagename = packagename:gsub("~.+$", "") - end - - -- get it from cache it - local packagedirs = _g._PACKAGEDIRS or {} - local foundir = packagedirs[packagename] - if foundir then - return foundir[1], foundir[2] - end - - -- find the package directory from repositories - for _, repo in ipairs(repositories()) do - local dir = path.join(repo:directory(), "packages", packagename:sub(1, 1):lower(), packagename) - if os.isdir(dir) and (not reponame or reponame == repo:name()) then - foundir = {dir, repo} - break - end - end - - -- found? - if foundir then - - -- save package directory - packagedirs[packagename] = foundir - - -- update cache - _g._PACKAGEDIRS = packagedirs - - -- ok - return foundir[1], foundir[2] - end -end - --- search package directories from repositories -function searchdirs(name) - - -- find the package directories from all repositories - local unique = {} - local packageinfos = {} - for _, repo in ipairs(repositories()) do - for _, file in ipairs(os.files(path.join(repo:directory(), "packages", "*", string.ipattern("*" .. name .. "*"), "xmake.lua"))) do - local dir = path.directory(file) - local subdirname = path.basename(path.directory(dir)) - if #subdirname == 1 then -- ignore l/luajit/port/xmake.lua - local packagename = path.basename(dir) - if not unique[packagename] then - table.insert(packageinfos, {name = packagename, repo = repo, packagedir = path.directory(file)}) - unique[packagename] = true - end - end - end - end - return packageinfos -end - |
