diff options
| author | V1K1NGbg <victor@ilchev.com> | 2024-08-22 17:49:06 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2024-10-21 13:30:51 -0300 |
| commit | b5fc16cf0403e5685ba2d31c4723fa9997b5b5f7 (patch) | |
| tree | 83e011da3c4802d5433b25e83711c1ded0e58bea /src | |
| parent | ea6bfdb0c4c99bce09b1c0ea0361ac9864f4f1f3 (diff) | |
| download | luarocks-b5fc16cf0403e5685ba2d31c4723fa9997b5b5f7.tar.gz luarocks-b5fc16cf0403e5685ba2d31c4723fa9997b5b5f7.tar.bz2 luarocks-b5fc16cf0403e5685ba2d31c4723fa9997b5b5f7.zip | |
Teal: convert luarocks.core.path
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/core/path.tl (renamed from src/luarocks/core/path.lua) | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/src/luarocks/core/path.lua b/src/luarocks/core/path.tl index 2f037b41..680c3296 100644 --- a/src/luarocks/core/path.lua +++ b/src/luarocks/core/path.tl | |||
| @@ -1,22 +1,22 @@ | |||
| 1 | |||
| 2 | --- Core LuaRocks-specific path handling functions. | 1 | --- Core LuaRocks-specific path handling functions. |
| 3 | local path = {} | 2 | local record path |
| 3 | end | ||
| 4 | 4 | ||
| 5 | local cfg = require("luarocks.core.cfg") | 5 | local cfg = require("luarocks.core.cfg") |
| 6 | local dir = require("luarocks.core.dir") | 6 | local dir = require("luarocks.core.dir") |
| 7 | local require = nil | 7 | |
| 8 | local type Tree = require("luarocks.core.types.tree").Tree | ||
| 8 | 9 | ||
| 9 | local dir_sep = package.config:sub(1, 1) | 10 | local dir_sep = package.config:sub(1, 1) |
| 10 | -------------------------------------------------------------------------------- | 11 | -------------------------------------------------------------------------------- |
| 11 | 12 | ||
| 12 | function path.rocks_dir(tree) | 13 | function path.rocks_dir(tree: string | Tree): string |
| 13 | if tree == nil then | 14 | if tree == nil then |
| 14 | tree = cfg.root_dir | 15 | tree = cfg.root_dir |
| 15 | end | 16 | end |
| 16 | if type(tree) == "string" then | 17 | if tree is string then |
| 17 | return dir.path(tree, cfg.rocks_subdir) | 18 | return dir.path(tree, cfg.rocks_subdir) |
| 18 | end | 19 | end |
| 19 | assert(type(tree) == "table") | ||
| 20 | return tree.rocks_dir or dir.path(tree.root, cfg.rocks_subdir) | 20 | return tree.rocks_dir or dir.path(tree.root, cfg.rocks_subdir) |
| 21 | end | 21 | end |
| 22 | 22 | ||
| @@ -26,10 +26,8 @@ end | |||
| 26 | -- @param name string: Rock name | 26 | -- @param name string: Rock name |
| 27 | -- @param version string: Rock version | 27 | -- @param version string: Rock version |
| 28 | -- @return string: a pathname with the same directory parts and a versioned basename. | 28 | -- @return string: a pathname with the same directory parts and a versioned basename. |
| 29 | function path.versioned_name(file, prefix, name, version) | 29 | function path.versioned_name(file: string, prefix: string, name: string, version: string): string |
| 30 | assert(type(file) == "string") | 30 | assert(not name:match(dir_sep)) |
| 31 | assert(type(name) == "string" and not name:match(dir_sep)) | ||
| 32 | assert(type(version) == "string") | ||
| 33 | 31 | ||
| 34 | local rest = file:sub(#prefix+1):gsub("^" .. dir_sep .. "*", "") | 32 | local rest = file:sub(#prefix+1):gsub("^" .. dir_sep .. "*", "") |
| 35 | local name_version = (name.."_"..version):gsub("%-", "_"):gsub("%.", "_") | 33 | local name_version = (name.."_"..version):gsub("%-", "_"):gsub("%.", "_") |
| @@ -43,8 +41,7 @@ end | |||
| 43 | -- @return string: The module identifier, or nil if given path is | 41 | -- @return string: The module identifier, or nil if given path is |
| 44 | -- not a conformant module path (the function does not check if the | 42 | -- not a conformant module path (the function does not check if the |
| 45 | -- path actually exists). | 43 | -- path actually exists). |
| 46 | function path.path_to_module(file) | 44 | function path.path_to_module(file: string): string |
| 47 | assert(type(file) == "string") | ||
| 48 | 45 | ||
| 49 | local exts = {} | 46 | local exts = {} |
| 50 | local paths = package.path .. ";" .. package.cpath | 47 | local paths = package.path .. ";" .. package.cpath |
| @@ -55,7 +52,7 @@ function path.path_to_module(file) | |||
| 55 | end | 52 | end |
| 56 | end | 53 | end |
| 57 | 54 | ||
| 58 | local name | 55 | local name: string |
| 59 | for ext, _ in pairs(exts) do | 56 | for ext, _ in pairs(exts) do |
| 60 | name = file:match("(.*)%." .. ext .. "$") | 57 | name = file:match("(.*)%." .. ext .. "$") |
| 61 | if name then | 58 | if name then |
| @@ -72,25 +69,23 @@ function path.path_to_module(file) | |||
| 72 | return name | 69 | return name |
| 73 | end | 70 | end |
| 74 | 71 | ||
| 75 | function path.deploy_lua_dir(tree) | 72 | function path.deploy_lua_dir(tree: string | Tree): string |
| 76 | if type(tree) == "string" then | 73 | if tree is string then |
| 77 | return dir.path(tree, cfg.lua_modules_path) | 74 | return dir.path(tree, cfg.lua_modules_path) |
| 78 | else | 75 | else |
| 79 | assert(type(tree) == "table") | ||
| 80 | return tree.lua_dir or dir.path(tree.root, cfg.lua_modules_path) | 76 | return tree.lua_dir or dir.path(tree.root, cfg.lua_modules_path) |
| 81 | end | 77 | end |
| 82 | end | 78 | end |
| 83 | 79 | ||
| 84 | function path.deploy_lib_dir(tree) | 80 | function path.deploy_lib_dir(tree: string | Tree): string |
| 85 | if type(tree) == "string" then | 81 | if tree is string then |
| 86 | return dir.path(tree, cfg.lib_modules_path) | 82 | return dir.path(tree, cfg.lib_modules_path) |
| 87 | else | 83 | else |
| 88 | assert(type(tree) == "table") | ||
| 89 | return tree.lib_dir or dir.path(tree.root, cfg.lib_modules_path) | 84 | return tree.lib_dir or dir.path(tree.root, cfg.lib_modules_path) |
| 90 | end | 85 | end |
| 91 | end | 86 | end |
| 92 | 87 | ||
| 93 | local is_src_extension = { [".lua"] = true, [".tl"] = true, [".tld"] = true, [".moon"] = true } | 88 | local is_src_extension: {string: boolean} = { [".lua"] = true, [".tl"] = true, [".tld"] = true, [".moon"] = true } |
| 94 | 89 | ||
| 95 | --- Return the pathname of the file that would be loaded for a module, indexed. | 90 | --- Return the pathname of the file that would be loaded for a module, indexed. |
| 96 | -- @param file_name string: module file name as in manifest (eg. "socket/core.so") | 91 | -- @param file_name string: module file name as in manifest (eg. "socket/core.so") |
| @@ -100,8 +95,8 @@ local is_src_extension = { [".lua"] = true, [".tl"] = true, [".tld"] = true, [". | |||
| 100 | -- @param i number: the index, 1 if version is the current default, > 1 otherwise. | 95 | -- @param i number: the index, 1 if version is the current default, > 1 otherwise. |
| 101 | -- This is done this way for use by select_module in luarocks.loader. | 96 | -- This is done this way for use by select_module in luarocks.loader. |
| 102 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | 97 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") |
| 103 | function path.which_i(file_name, name, version, tree, i) | 98 | function path.which_i(file_name: string, name: string, version: string, tree: string | Tree, i: number): string |
| 104 | local deploy_dir | 99 | local deploy_dir: string |
| 105 | local extension = file_name:match("%.[a-z]+$") | 100 | local extension = file_name:match("%.[a-z]+$") |
| 106 | if is_src_extension[extension] then | 101 | if is_src_extension[extension] then |
| 107 | deploy_dir = path.deploy_lua_dir(tree) | 102 | deploy_dir = path.deploy_lua_dir(tree) |
| @@ -116,11 +111,10 @@ function path.which_i(file_name, name, version, tree, i) | |||
| 116 | return file_name | 111 | return file_name |
| 117 | end | 112 | end |
| 118 | 113 | ||
| 119 | function path.rocks_tree_to_string(tree) | 114 | function path.rocks_tree_to_string(tree: string | Tree): string |
| 120 | if type(tree) == "string" then | 115 | if tree is string then |
| 121 | return tree | 116 | return tree |
| 122 | else | 117 | else |
| 123 | assert(type(tree) == "table") | ||
| 124 | return tree.root | 118 | return tree.root |
| 125 | end | 119 | end |
| 126 | end | 120 | end |
| @@ -132,7 +126,7 @@ end | |||
| 132 | -- @param fn function: function to be applied, with the tree dir (string) as the first | 126 | -- @param fn function: function to be applied, with the tree dir (string) as the first |
| 133 | -- argument and the remaining varargs of map_trees as the following arguments. | 127 | -- argument and the remaining varargs of map_trees as the following arguments. |
| 134 | -- @return a table with all results of invocations of fn collected. | 128 | -- @return a table with all results of invocations of fn collected. |
| 135 | function path.map_trees(deps_mode, fn, ...) | 129 | function path.map_trees(deps_mode: string, fn: function, ...: string): {any} |
| 136 | local result = {} | 130 | local result = {} |
| 137 | local current = cfg.root_dir or cfg.rocks_trees[1] | 131 | local current = cfg.root_dir or cfg.rocks_trees[1] |
| 138 | if deps_mode == "one" then | 132 | if deps_mode == "one" then |
