From b240164015b47e1c1a1971f7df9e1ea2a4807e55 Mon Sep 17 00:00:00 2001 From: LDDestroier Date: Sat, 25 May 2019 21:56:30 -0400 Subject: [PATCH] Create netrequire.lua --- netrequire.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 netrequire.lua diff --git a/netrequire.lua b/netrequire.lua new file mode 100644 index 0000000..452e400 --- /dev/null +++ b/netrequire.lua @@ -0,0 +1,30 @@ +local function netrequire(_name, alwaysDownload, ...) + assert(type(_name) == "string", "API name must be a string") + local DL_path = ".netrequire_storage" + + local name + if _name:sub(-4, -1) ~= ".lua" then + name = _name .. ".lua" + else + name = _name + end + + if (not fs.exists(fs.combine(DL_path, name))) or alwaysDownload then + local url = "https://github.com/LDDestroier/CC/raw/master/netrequire/" .. name + local net = http.get(url) + if net then + local contents = net.readAll() + net.close() + local file = fs.open(fs.combine(DL_path, name), "w") + file.write(contents) + file.close() + return loadstring(contents)(...) + else + error("Cannot find any such API '" .. name .. "'") + end + else + return loadfile(fs.combine(DL_path, name))(...) + end +end + +return netrequire