diff options
| author | V1K1NGbg <victor@ilchev.com> | 2024-08-22 17:49:09 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2024-10-21 13:30:51 -0300 |
| commit | 49f174265944b326f183ed6fb7ffc15aeb32b815 (patch) | |
| tree | c99de6f8b6740825aac756b5381f5babda75cdd3 /src | |
| parent | a1292cab06cc8f93365afd30d87a502b8c60bc03 (diff) | |
| download | luarocks-49f174265944b326f183ed6fb7ffc15aeb32b815.tar.gz luarocks-49f174265944b326f183ed6fb7ffc15aeb32b815.tar.bz2 luarocks-49f174265944b326f183ed6fb7ffc15aeb32b815.zip | |
Teal: convert luarocks.deplocks
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/deplocks.tl (renamed from src/luarocks/deplocks.lua) | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/src/luarocks/deplocks.lua b/src/luarocks/deplocks.tl index d62908f4..37c0c700 100644 --- a/src/luarocks/deplocks.lua +++ b/src/luarocks/deplocks.tl | |||
| @@ -5,12 +5,14 @@ local dir = require("luarocks.dir") | |||
| 5 | local util = require("luarocks.util") | 5 | local util = require("luarocks.util") |
| 6 | local persist = require("luarocks.persist") | 6 | local persist = require("luarocks.persist") |
| 7 | 7 | ||
| 8 | local deptable = {} | 8 | local type PersistableTable = require("luarocks.core.types.persist").PersistableTable |
| 9 | |||
| 10 | local deptable: PersistableTable = {} | ||
| 9 | local deptable_mode = "start" | 11 | local deptable_mode = "start" |
| 10 | local deplock_abs_filename | 12 | local deplock_abs_filename: string |
| 11 | local deplock_root_rock_name | 13 | local deplock_root_rock_name: string |
| 12 | 14 | ||
| 13 | function deplocks.init(root_rock_name, dirname) | 15 | function deplocks.init(root_rock_name: string, dirname: string) |
| 14 | if deptable_mode ~= "start" then | 16 | if deptable_mode ~= "start" then |
| 15 | return | 17 | return |
| 16 | end | 18 | end |
| @@ -23,20 +25,20 @@ function deplocks.init(root_rock_name, dirname) | |||
| 23 | deptable = {} | 25 | deptable = {} |
| 24 | end | 26 | end |
| 25 | 27 | ||
| 26 | function deplocks.get_abs_filename(root_rock_name) | 28 | function deplocks.get_abs_filename(root_rock_name: string): string |
| 27 | if root_rock_name == deplock_root_rock_name then | 29 | if root_rock_name == deplock_root_rock_name then |
| 28 | return deplock_abs_filename | 30 | return deplock_abs_filename |
| 29 | end | 31 | end |
| 30 | end | 32 | end |
| 31 | 33 | ||
| 32 | function deplocks.load(root_rock_name, dirname) | 34 | function deplocks.load(root_rock_name: string, dirname: string): boolean, string, string |
| 33 | if deptable_mode ~= "start" then | 35 | if deptable_mode ~= "start" then |
| 34 | return true, nil | 36 | return true, nil |
| 35 | end | 37 | end |
| 36 | deptable_mode = "locked" | 38 | deptable_mode = "locked" |
| 37 | 39 | ||
| 38 | local filename = dir.path(dirname, "luarocks.lock") | 40 | local filename = dir.path(dirname, "luarocks.lock") |
| 39 | local ok, result, errcode = persist.run_file(filename, {}) | 41 | local _, result, errcode = persist.run_file(filename, {}) |
| 40 | if errcode == "load" or errcode == "run" then | 42 | if errcode == "load" or errcode == "run" then |
| 41 | -- bad config file or depends on env, so error out | 43 | -- bad config file or depends on env, so error out |
| 42 | return nil, nil, "Could not read existing lockfile " .. filename | 44 | return nil, nil, "Could not read existing lockfile " .. filename |
| @@ -50,11 +52,11 @@ function deplocks.load(root_rock_name, dirname) | |||
| 50 | deplock_abs_filename = fs.absolute_name(filename) | 52 | deplock_abs_filename = fs.absolute_name(filename) |
| 51 | deplock_root_rock_name = root_rock_name | 53 | deplock_root_rock_name = root_rock_name |
| 52 | 54 | ||
| 53 | deptable = result | 55 | deptable = result as PersistableTable --! cast |
| 54 | return true, filename | 56 | return true, filename |
| 55 | end | 57 | end |
| 56 | 58 | ||
| 57 | function deplocks.add(depskey, name, version) | 59 | function deplocks.add(depskey: string, name: string, version: string) |
| 58 | if deptable_mode == "locked" then | 60 | if deptable_mode == "locked" then |
| 59 | return | 61 | return |
| 60 | end | 62 | end |
| @@ -65,21 +67,24 @@ function deplocks.add(depskey, name, version) | |||
| 65 | deptable[depskey] = dk | 67 | deptable[depskey] = dk |
| 66 | end | 68 | end |
| 67 | 69 | ||
| 68 | if not dk[name] then | 70 | if dk is PersistableTable and not dk[name] then |
| 69 | dk[name] = version | 71 | dk[name] = version |
| 70 | end | 72 | end |
| 71 | end | 73 | end |
| 72 | 74 | ||
| 73 | function deplocks.get(depskey, name) | 75 | function deplocks.get(depskey: string, name: string): string | number | boolean | PersistableTable |
| 74 | local dk = deptable[depskey] | 76 | local dk = deptable[depskey] |
| 75 | if not dk then | 77 | if not dk then |
| 76 | return nil | 78 | return nil |
| 77 | end | 79 | end |
| 78 | 80 | if dk is PersistableTable then | |
| 79 | return deptable[name] | 81 | return dk[name] |
| 82 | else | ||
| 83 | return dk | ||
| 84 | end | ||
| 80 | end | 85 | end |
| 81 | 86 | ||
| 82 | function deplocks.write_file() | 87 | function deplocks.write_file(): boolean, string |
| 83 | if deptable_mode ~= "create" then | 88 | if deptable_mode ~= "create" then |
| 84 | return true | 89 | return true |
| 85 | end | 90 | end |
| @@ -88,19 +93,19 @@ function deplocks.write_file() | |||
| 88 | end | 93 | end |
| 89 | 94 | ||
| 90 | -- a table-like interface to deplocks | 95 | -- a table-like interface to deplocks |
| 91 | function deplocks.proxy(depskey) | 96 | function deplocks.proxy(depskey: string): PersistableTable |
| 92 | return setmetatable({}, { | 97 | return setmetatable({}, { |
| 93 | __index = function(_, k) | 98 | __index = function(_, k: string): string | number | boolean | PersistableTable |
| 94 | return deplocks.get(depskey, k) | 99 | return deplocks.get(depskey, k) |
| 95 | end, | 100 | end, |
| 96 | __newindex = function(_, k, v) | 101 | __newindex = function(_, k: string, v: string) |
| 97 | return deplocks.add(depskey, k, v) | 102 | return deplocks.add(depskey, k, v) |
| 98 | end, | 103 | end, |
| 99 | }) | 104 | }) |
| 100 | end | 105 | end |
| 101 | 106 | ||
| 102 | function deplocks.each(depskey) | 107 | function deplocks.each(depskey: string): function(): string | number, string | number | boolean | PersistableTable |
| 103 | return util.sortedpairs(deptable[depskey] or {}) | 108 | return util.sortedpairs(deptable[depskey] as PersistableTable or {}) |
| 104 | end | 109 | end |
| 105 | 110 | ||
| 106 | return deplocks | 111 | return deplocks |
