diff options
| author | V1K1NGbg <victor@ilchev.com> | 2024-07-29 19:46:34 +0300 |
|---|---|---|
| committer | V1K1NGbg <victor@ilchev.com> | 2024-08-05 20:51:22 +0300 |
| commit | 79096e46d653cfbf06970c2a638855c40232adee (patch) | |
| tree | 3daf13ba3b51980797fab6b85e29149a68a366ce /src | |
| parent | 7d8161f6699e674c760feca300447fc56fd79c32 (diff) | |
| download | luarocks-79096e46d653cfbf06970c2a638855c40232adee.tar.gz luarocks-79096e46d653cfbf06970c2a638855c40232adee.tar.bz2 luarocks-79096e46d653cfbf06970c2a638855c40232adee.zip | |
removing util.opts_table
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/build.lua | 16 | ||||
| -rw-r--r-- | src/luarocks/cmd/install.lua | 17 | ||||
| -rw-r--r-- | src/luarocks/persist.tl | 19 | ||||
| -rw-r--r-- | src/luarocks/results.tl | 1 | ||||
| -rw-r--r-- | src/luarocks/util.lua | 32 |
5 files changed, 12 insertions, 73 deletions
diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua index c294b98e..ddaef760 100644 --- a/src/luarocks/build.lua +++ b/src/luarocks/build.lua | |||
| @@ -14,20 +14,6 @@ local repos = require("luarocks.repos") | |||
| 14 | local writer = require("luarocks.manif.writer") | 14 | local writer = require("luarocks.manif.writer") |
| 15 | local deplocks = require("luarocks.deplocks") | 15 | local deplocks = require("luarocks.deplocks") |
| 16 | 16 | ||
| 17 | build.opts = util.opts_table("build.opts", { --WORK | ||
| 18 | need_to_fetch = "boolean", | ||
| 19 | minimal_mode = "boolean", | ||
| 20 | deps_mode = "string", | ||
| 21 | build_only_deps = "boolean", | ||
| 22 | namespace = "string?", | ||
| 23 | branch = "string?", | ||
| 24 | verify = "boolean", | ||
| 25 | check_lua_versions = "boolean", | ||
| 26 | pin = "boolean", | ||
| 27 | rebuild = "boolean", | ||
| 28 | no_install = "boolean" | ||
| 29 | }) | ||
| 30 | |||
| 31 | do | 17 | do |
| 32 | --- Write to the current directory the contents of a table, | 18 | --- Write to the current directory the contents of a table, |
| 33 | -- where each key is a file name and its value is the file content. | 19 | -- where each key is a file name and its value is the file content. |
| @@ -390,8 +376,6 @@ end | |||
| 390 | -- installed rock if succeeded or nil and an error message followed by an error code. | 376 | -- installed rock if succeeded or nil and an error message followed by an error code. |
| 391 | function build.build_rockspec(rockspec, opts, cwd) | 377 | function build.build_rockspec(rockspec, opts, cwd) |
| 392 | assert(rockspec:type() == "rockspec") | 378 | assert(rockspec:type() == "rockspec") |
| 393 | assert(opts:type() == "build.opts") | ||
| 394 | assert(type(cwd) == "string" or type(cwd) == nil) | ||
| 395 | 379 | ||
| 396 | cwd = cwd or dir.path(".") | 380 | cwd = cwd or dir.path(".") |
| 397 | 381 | ||
diff --git a/src/luarocks/cmd/install.lua b/src/luarocks/cmd/install.lua index b50271f0..7102d857 100644 --- a/src/luarocks/cmd/install.lua +++ b/src/luarocks/cmd/install.lua | |||
| @@ -54,15 +54,6 @@ function install.add_to_parser(parser) | |||
| 54 | parser:flag("--sign"):hidden(true) | 54 | parser:flag("--sign"):hidden(true) |
| 55 | end | 55 | end |
| 56 | 56 | ||
| 57 | install.opts = util.opts_table("install.opts", { --WORK util.opts_table doesn't exist. Make a record | ||
| 58 | namespace = "string?", | ||
| 59 | keep = "boolean", | ||
| 60 | force = "boolean", | ||
| 61 | force_fast = "boolean", | ||
| 62 | no_doc = "boolean", | ||
| 63 | deps_mode = "string", | ||
| 64 | verify = "boolean", | ||
| 65 | }) | ||
| 66 | 57 | ||
| 67 | --- Install a binary rock. | 58 | --- Install a binary rock. |
| 68 | -- @param rock_file string: local or remote filename of a rock. | 59 | -- @param rock_file string: local or remote filename of a rock. |
| @@ -71,7 +62,6 @@ install.opts = util.opts_table("install.opts", { --WORK util.opts_table doesn't | |||
| 71 | -- installed rock if succeeded or nil and an error message followed by an error code. | 62 | -- installed rock if succeeded or nil and an error message followed by an error code. |
| 72 | function install.install_binary_rock(rock_file, opts) | 63 | function install.install_binary_rock(rock_file, opts) |
| 73 | assert(type(rock_file) == "string") | 64 | assert(type(rock_file) == "string") |
| 74 | assert(opts:type() == "install.opts") | ||
| 75 | 65 | ||
| 76 | local namespace = opts.namespace | 66 | local namespace = opts.namespace |
| 77 | local deps_mode = opts.deps_mode | 67 | local deps_mode = opts.deps_mode |
| @@ -156,7 +146,6 @@ end | |||
| 156 | -- followed by an error code. | 146 | -- followed by an error code. |
| 157 | function install.install_binary_rock_deps(rock_file, opts) | 147 | function install.install_binary_rock_deps(rock_file, opts) |
| 158 | assert(type(rock_file) == "string") | 148 | assert(type(rock_file) == "string") |
| 159 | assert(opts:type() == "install.opts") | ||
| 160 | 149 | ||
| 161 | local name, version, arch = path.parse_name(rock_file) | 150 | local name, version, arch = path.parse_name(rock_file) |
| 162 | if not name then | 151 | if not name then |
| @@ -190,7 +179,6 @@ function install.install_binary_rock_deps(rock_file, opts) | |||
| 190 | end | 179 | end |
| 191 | 180 | ||
| 192 | local function install_rock_file_deps(filename, opts) | 181 | local function install_rock_file_deps(filename, opts) |
| 193 | assert(opts:type() == "install.opts") | ||
| 194 | 182 | ||
| 195 | local name, version = install.install_binary_rock_deps(filename, opts) | 183 | local name, version = install.install_binary_rock_deps(filename, opts) |
| 196 | if not name then return nil, version end | 184 | if not name then return nil, version end |
| @@ -201,7 +189,6 @@ end | |||
| 201 | 189 | ||
| 202 | local function install_rock_file(filename, opts) | 190 | local function install_rock_file(filename, opts) |
| 203 | assert(type(filename) == "string") | 191 | assert(type(filename) == "string") |
| 204 | assert(opts:type() == "install.opts") | ||
| 205 | 192 | ||
| 206 | local name, version = install.install_binary_rock(filename, opts) | 193 | local name, version = install.install_binary_rock(filename, opts) |
| 207 | if not name then return nil, version end | 194 | if not name then return nil, version end |
| @@ -237,7 +224,7 @@ function install.command(args) | |||
| 237 | return build.command(args) | 224 | return build.command(args) |
| 238 | elseif args.rock:match("%.rock$") then | 225 | elseif args.rock:match("%.rock$") then |
| 239 | local deps_mode = deps.get_deps_mode(args) | 226 | local deps_mode = deps.get_deps_mode(args) |
| 240 | local opts = install.opts({ | 227 | local opts = { |
| 241 | namespace = args.namespace, | 228 | namespace = args.namespace, |
| 242 | keep = not not args.keep, | 229 | keep = not not args.keep, |
| 243 | force = not not args.force, | 230 | force = not not args.force, |
| @@ -245,7 +232,7 @@ function install.command(args) | |||
| 245 | no_doc = not not args.no_doc, | 232 | no_doc = not not args.no_doc, |
| 246 | deps_mode = deps_mode, | 233 | deps_mode = deps_mode, |
| 247 | verify = not not args.verify, | 234 | verify = not not args.verify, |
| 248 | }) | 235 | } |
| 249 | if args.only_deps then | 236 | if args.only_deps then |
| 250 | return install_rock_file_deps(args.rock, opts) | 237 | return install_rock_file_deps(args.rock, opts) |
| 251 | else | 238 | else |
diff --git a/src/luarocks/persist.tl b/src/luarocks/persist.tl index 46a1bbad..6bd4f896 100644 --- a/src/luarocks/persist.tl +++ b/src/luarocks/persist.tl | |||
| @@ -16,6 +16,7 @@ persist.load_into_table = core.load_into_table | |||
| 16 | 16 | ||
| 17 | local interface Writer | 17 | local interface Writer |
| 18 | write: function(self: Writer, data: string) | 18 | write: function(self: Writer, data: string) |
| 19 | buffer: {number | string} | ||
| 19 | end | 20 | end |
| 20 | 21 | ||
| 21 | local write_table: function(out: Writer, tbl: {number | string: number| string}, level: integer, field_order: util.SortBy<number | string>) | 22 | local write_table: function(out: Writer, tbl: {number | string: number| string}, level: integer, field_order: util.SortBy<number | string>) |
| @@ -175,7 +176,7 @@ end | |||
| 175 | -- @param field_order table: an optional array indicating the order of top-level fields. | 176 | -- @param field_order table: an optional array indicating the order of top-level fields. |
| 176 | -- @return persisted data as string; or nil and an error message | 177 | -- @return persisted data as string; or nil and an error message |
| 177 | function persist.save_from_table_to_string(tbl: {number | string: number | string}, field_order: util.SortBy<number | string>): string, string | 178 | function persist.save_from_table_to_string(tbl: {number | string: number | string}, field_order: util.SortBy<number | string>): string, string |
| 178 | local out: Writer = {buffer = {}} --! | 179 | local out: Writer = {buffer = {}} |
| 179 | function out:write(data: string) table.insert(self.buffer, data) end | 180 | function out:write(data: string) table.insert(self.buffer, data) end |
| 180 | local ok, err = write_table_as_assignments(out, tbl, field_order) | 181 | local ok, err = write_table_as_assignments(out, tbl, field_order) |
| 181 | if not ok then | 182 | if not ok then |
| @@ -193,14 +194,14 @@ end | |||
| 193 | -- @param field_order table: an optional array indicating the order of top-level fields. | 194 | -- @param field_order table: an optional array indicating the order of top-level fields. |
| 194 | -- @return boolean or (nil, string): true if successful, or nil and a | 195 | -- @return boolean or (nil, string): true if successful, or nil and a |
| 195 | -- message in case of errors. | 196 | -- message in case of errors. |
| 196 | function persist.save_from_table(filename: string, tbl: {number | string : number | string}, field_order: util.SortBy<number | string>) | 197 | function persist.save_from_table(filename: string, tbl: {number | string : number | string}, field_order: util.SortBy<number | string>): boolean, string |
| 197 | local prefix = dir.dir_name(filename) | 198 | local prefix = dir.dir_name(filename) |
| 198 | fs.make_dir(prefix) | 199 | fs.make_dir(prefix) |
| 199 | local out = io.open(filename, "w") | 200 | local out = io.open(filename, "w") |
| 200 | if not out then | 201 | if not out then |
| 201 | return nil, "Cannot create file at "..filename | 202 | return nil, "Cannot create file at "..filename |
| 202 | end | 203 | end |
| 203 | local ok, err = write_table_as_assignments(out, tbl, field_order) | 204 | local ok, err = write_table_as_assignments(out, tbl, field_order) --! interface problems |
| 204 | out:close() | 205 | out:close() |
| 205 | if not ok then | 206 | if not ok then |
| 206 | return nil, err | 207 | return nil, err |
| @@ -216,32 +217,32 @@ end | |||
| 216 | -- @param tbl table: the table containing the data to be written | 217 | -- @param tbl table: the table containing the data to be written |
| 217 | -- @return boolean or (nil, string): true if successful, or nil and a | 218 | -- @return boolean or (nil, string): true if successful, or nil and a |
| 218 | -- message in case of errors. | 219 | -- message in case of errors. |
| 219 | function persist.save_as_module(filename, tbl) | 220 | function persist.save_as_module(filename: string, tbl: {number | string : number | string}): boolean, string |
| 220 | local out = io.open(filename, "w") | 221 | local out = io.open(filename, "w") |
| 221 | if not out then | 222 | if not out then |
| 222 | return nil, "Cannot create file at "..filename | 223 | return nil, "Cannot create file at "..filename |
| 223 | end | 224 | end |
| 224 | write_table_as_table(out, tbl) | 225 | write_table_as_table(out, tbl) --! interface problems |
| 225 | out:close() | 226 | out:close() |
| 226 | return true | 227 | return true |
| 227 | end | 228 | end |
| 228 | 229 | ||
| 229 | function persist.load_config_file_if_basic(filename, cfg) | 230 | function persist.load_config_file_if_basic(filename: string, cfg): boolean | {number | string : number | string}, string --! cfg type |
| 230 | local env = { | 231 | local env = { |
| 231 | home = cfg.home | 232 | home = cfg.home |
| 232 | } | 233 | } |
| 233 | local result, err, errcode = persist.load_into_table(filename, env) | 234 | local result, _, errcode = persist.load_into_table(filename, env) |
| 234 | if errcode == "load" or errcode == "run" then | 235 | if errcode == "load" or errcode == "run" then |
| 235 | -- bad config file or depends on env, so error out | 236 | -- bad config file or depends on env, so error out |
| 236 | return nil, "Could not read existing config file " .. filename | 237 | return nil, "Could not read existing config file " .. filename |
| 237 | end | 238 | end |
| 238 | 239 | ||
| 239 | local tbl | 240 | local tbl: {number | string : number | string} |
| 240 | if errcode == "open" then | 241 | if errcode == "open" then |
| 241 | -- could not open, maybe file does not exist | 242 | -- could not open, maybe file does not exist |
| 242 | tbl = {} | 243 | tbl = {} |
| 243 | else | 244 | else |
| 244 | tbl = result | 245 | tbl = result --! strongger definition --? make the load into table generic |
| 245 | tbl.home = nil | 246 | tbl.home = nil |
| 246 | end | 247 | end |
| 247 | 248 | ||
diff --git a/src/luarocks/results.tl b/src/luarocks/results.tl index 78a46da9..a5bc25fe 100644 --- a/src/luarocks/results.tl +++ b/src/luarocks/results.tl | |||
| @@ -1,5 +1,4 @@ | |||
| 1 | local record results | 1 | local record results |
| 2 | |||
| 3 | end | 2 | end |
| 4 | 3 | ||
| 5 | local vers = require("luarocks.core.vers") | 4 | local vers = require("luarocks.core.vers") |
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua index 165cb8fa..04865715 100644 --- a/src/luarocks/util.lua +++ b/src/luarocks/util.lua | |||
| @@ -553,38 +553,6 @@ end | |||
| 553 | 553 | ||
| 554 | 554 | ||
| 555 | 555 | ||
| 556 | function util.opts_table(type_name, valid_opts) --! TEMP | ||
| 557 | local opts_mt = {} | ||
| 558 | |||
| 559 | opts_mt.__index = opts_mt | ||
| 560 | |||
| 561 | function opts_mt.type() | ||
| 562 | return type_name | ||
| 563 | end | ||
| 564 | |||
| 565 | return function(opts) | ||
| 566 | for k, v in pairs(opts) do | ||
| 567 | local tv = type(v) | ||
| 568 | if not valid_opts[k] then | ||
| 569 | error("invalid option: "..k) | ||
| 570 | end | ||
| 571 | local vo, optional = valid_opts[k]:match("^(.-)(%??)$") | ||
| 572 | if not (tv == vo or (optional == "?" and tv == nil)) then | ||
| 573 | error("invalid type option: "..k.." - got "..tv..", expected "..vo) | ||
| 574 | end | ||
| 575 | end | ||
| 576 | for k, v in pairs(valid_opts) do | ||
| 577 | if (not v:find("?", 1, true)) and opts[k] == nil then | ||
| 578 | error("missing option: "..k) | ||
| 579 | end | ||
| 580 | end | ||
| 581 | return setmetatable(opts, opts_mt) | ||
| 582 | end | ||
| 583 | end | ||
| 584 | |||
| 585 | |||
| 586 | |||
| 587 | |||
| 588 | function util.get_rocks_provided(rockspec) | 556 | function util.get_rocks_provided(rockspec) |
| 589 | 557 | ||
| 590 | if not rockspec and cfg.cache.rocks_provided then | 558 | if not rockspec and cfg.cache.rocks_provided then |
