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 |