Compare commits

...
2 Commits
Author SHA1 Message Date
eejebring 4d8b615ccb formatting & more nil checks 2026-08-21 21:18:51 +02:00
eejebring 712cfab946 Create .luarc.json 2026-08-21 21:18:03 +02:00
2 changed files with 109 additions and 94 deletions
+13
View File
@@ -0,0 +1,13 @@
{
"runtime.version": "Lua 5.1",
"workspace.library": [
"/home/eejebring/code/external/cc-tweaked-documentation"
],
"diagnostics.globals": [
"os", "fs", "computer", "peripheral", "turtle", "term",
"redstone", "colors", "colours", "keys", "http", "gps",
"disk", "commands", "vector", "paintutils", "parallel",
"rs", "settings", "shell", "window", "io", "textutils",
"native", "periphemu", "read"
]
}
+13 -11
View File
@@ -1,9 +1,3 @@
-- Save as /home/git.lua
local http = require("http")
local fs = require("fs")
local json = textutils.unserializeJSON
-- Configuration
local GIT_TOKEN = "" -- Leave empty for public repos, or add "your-token-here"
-- Parse a Gitea URL like: https://gitea.example.com/owner/repo or /owner/repo/branch/filename
@@ -52,9 +46,13 @@ local function downloadFile(base, owner, repo, branch, path, target)
local data = response.readAll()
response.close()
local file = fs.open(target, "w")
local file, fileError = fs.open(target, "w")
if file then
file.write(data)
file.close()
else
error("Could not download file '" .. target "' due to: " .. fileError)
end
end
local function cloneRepo(url)
@@ -63,7 +61,8 @@ local function cloneRepo(url)
print("Cloning: " .. info.owner .. "/" .. info.repo .. "@" .. info.branch)
local treeUrl = ("%s/api/v1/repos/%s/%s/git/trees/%s?recursive=1"):format(info.base, info.owner, info.repo, info.branch)
local treeUrl = ("%s/api/v1/repos/%s/%s/git/trees/%s?recursive=1"):format(info.base, info.owner, info.repo,
info.branch)
local req = { url = treeUrl }
if GIT_TOKEN ~= "" then
@@ -72,9 +71,12 @@ local function cloneRepo(url)
local resp = http.get(req)
if not resp then error("Cannot access repository. Check URL or token.") end
local tree = json(resp.readAll())
local responseJSON = resp.readAll()
resp.close()
if not responseJSON then error("Response returned empty.") end
local tree = textutils.unserializeJSON(responseJSON)
if not tree then error("Response could not be unserialized") end
local count = 0
for _, node in ipairs(tree.tree) do
@@ -93,7 +95,7 @@ local function cloneRepo(url)
end
local args = { ... }
if args[1] == "pull" and args[2] then
if args[1] == "clone" and args[2] then
cloneRepo(args[2])
else
print("Usage:")