-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathupdate.lua
More file actions
74 lines (64 loc) · 1.64 KB
/
update.lua
File metadata and controls
74 lines (64 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
print("Installing cc-code...")
fs.delete("code.lua")
fs.delete("code")
---@type table<string, string>
local requests = {}
---TODO
---@param urlBase string
---@param root string
---@param filenames string[]
local function addRequests(urlBase, root, filenames)
for _, filename in ipairs(filenames) do
requests[urlBase .. "/" .. filename] = root .. "/" .. filename
end
end
local githubPossseidon = "https://raw.githubusercontent.com/Possseidon/"
addRequests(githubPossseidon .. "cc-code/main", "", {
"code/highlighter/vscode.lua",
"code/class.lua",
"code/clipboard.lua",
"code/Code.lua",
"code/Editor.lua",
"code/Highlighter.lua",
"code.lua",
})
addRequests(githubPossseidon .. "lua-lexers/main", "code/lexers", {
"lexLua.lua",
})
for url, _filename in pairs(requests) do
assert(http.request { url = url, binary = true })
end
---TODO
---@param event string
---@param ... any
---@return boolean ok, string? error
local function handleEvent(event, ...)
if event == "http_success" then
local url, response = ...
local filename = requests[url]
if filename then
requests[url] = nil
end
local file = fs.open("/" .. filename, "wb")
file.write(response.readAll())
file.close()
print(filename)
return true
elseif event == "http_failure" then
local url, err, _resonse = ...
local filename = requests[url]
if filename then
return false, filename .. "\n-> " .. err
end
end
return true
end
while next(requests) do
---@diagnostic disable-next-line: undefined-field
local ok, err = handleEvent(os.pullEvent())
if not ok then
printError(err)
break
end
end
print("Done!")