Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
--TODO: implement -Syu --IMPORTANT, THIS IS THE PACKAGE DATABASE local ENCDATA ="ENCIOK/59bd0e8e27b9d34a05b997064728082a/raw/database.json" --check if the user is stupid if #arg == 0 then print("error: no operation specified (use encpac -h for help)") return end --open the package DB local ENCfile = fs.open("packagedb/ENCdb", "r") if ENCfile then ENC = ENCfile.readAll() ENC = textutils.unserialiseJSON(ENC) ENCfile.close() else if arg[1] ~= "-Sy" then print("WARNING didn't find package database") end end local function download(address) local answer, err = http.get("https://gist.githubusercontent.com/".. address) if not err then local data = answer.readAll() answer.close() return data end printError(err) return "poopoo" end local function refresh() print("synchronizing package database..") print("ENC") fs.delete("packagedb/ENCdb") local file = fs.open("packagedb/ENCdb", "w") local data = download(ENCDATA) if data == "poopoo" then return end file.write(data) file.close() print("done!") end --getting all depends for package local function checkDepends(pacName, installList) if ENC[pacName] then if not installList[pacName] then installList[pacName] = true end if ENC[pacName].depends then for _, v in ipairs(ENC[pacName].depends) do checkDepends(v, installList) end else return end else printError("can't find package:", pacName) return "poopoo" end end local function synchronize(pacName, path) path = path or "" --get depends print("checking dependencies\n..") local packsToInstall = {} if checkDepends(pacName, packsToInstall) == "poopoo" then return end print("no problems found, about to install the following:\n") for v, _ in pairs(packsToInstall) do io.write(v.." ") end print() io.write("\nProceed with installation? [Y/n] ") local inp = io.read() if inp == "" or inp == "Y" or inp == "y" then print("installing:..") else return end for v, _ in pairs(packsToInstall) do print(v) local data = download(ENC[v].url) if data == "poopoo" then return end local file = fs.open(path .. "/" .. ENC[v].install, "w") file.write(data) file.close() end print("done!") end --lookup table for arguments local argtable = { ["-S"] = synchronize, ["-Sl"] = function(a) synchronize(arg[3], a) end, ["-Sy"] = refresh, ["-h"] = function() end } if argtable[arg[1]] then argtable[arg[1]](arg[2]) else printError("error: invalid option", arg[1]) end
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)