SHOW:
|
|
- or go back to the newest paste.
1 | - | function download(package,fileName) |
1 | + | --Change this if you want to use your own repo. Github Pages works great, if you don't have your own webserver. |
2 | local repoURL = "http://kd.funniray.com/kdpm/packages" | |
3 | ||
4 | local function download(package,fileName) | |
5 | - | local res = http.get("http://kd.funniray.com/kdpm/packages/"..package.."/"..fileName) |
5 | + | |
6 | fs.makeDir("/kdpm/packages/"..package.."/") | |
7 | end | |
8 | local res = http.get(repoURL.."/"..package.."/"..fileName) | |
9 | local file = fs.open("/kdpm/packages/"..package.."/"..fileName,"w") | |
10 | file.write(res.readAll()) | |
11 | res.close() | |
12 | - | function getPackageData(package) |
12 | + | |
13 | - | local res = http.get("http://kd.funniray.com/kdpm/packages/"..package.."/pkgManifest.json") |
13 | + | |
14 | ||
15 | local function getPackageData(package) | |
16 | local res = http.get(repoURL.."/"..package.."/pkgManifest.json") | |
17 | local pkgData = json.decode(res.readAll()) | |
18 | res.close() | |
19 | - | function downloadPackage(package) |
19 | + | |
20 | end | |
21 | ||
22 | local function downloadPackage(package) | |
23 | local pkgData = getPackageData(package) | |
24 | local packageDir = "/kdpm/packages/"..package.."/" | |
25 | for k,fileName in ipairs(pkgData.files) do | |
26 | print("[DL] "..k.."/"..pkgData.fileCount.." -> "..fileName) | |
27 | download(package,fileName) | |
28 | end | |
29 | return pkgData | |
30 | end | |
31 | ||
32 | function package_installed(package) | |
33 | return fs.exists("/kdpm/packages/"..package.."/") | |
34 | end | |
35 | ||
36 | if (package_installed("json")) then | |
37 | - | json = { decode=function() print("json package not installed! :o")end} |
37 | + | |
38 | else | |
39 | print("WARNING: \"json\" package not installed!") | |
40 | json = { decode=function() print("JSON package not installed! This will cause errors!")end} | |
41 | end | |
42 | ||
43 | function installPackage(package) | |
44 | local pkgData = downloadPackage(package) | |
45 | if (pkgData.isExecutable == true) then | |
46 | - | function install_kdpm() |
46 | + | |
47 | end | |
48 | if (pkgData.hasInstallScript == true) then | |
49 | print("This package has an install script - run it? [y/N]: ") | |
50 | local runit = io.read() | |
51 | if (runit == "y" or runit == "Y") then | |
52 | shell.run("/kdpm/packages/"..package.."/"..pkgData.installScript) | |
53 | else | |
54 | print("Not running the install script. Keep in mind this may make the package non-functional - you'll probably want to run it manually if things don't work.") | |
55 | end | |
56 | end | |
57 | end | |
58 | ||
59 | local function install_kdpm() | |
60 | if (not fs.exists("/kdpm/")) then | |
61 | fs.makeDir("/kdpm/") | |
62 | end | |
63 | if (not fs.exists("/kdpm/packages/")) then | |
64 | fs.makeDir("/kdpm/packages/") | |
65 | end | |
66 | if (not fs.exists("/kdpm/packages/json/")) then | |
67 | download("json","json.lua") | |
68 | os.loadAPI("/kdpm/packages/json/json.lua") | |
69 | end | |
70 | end | |
71 | - | if (arg[1] == "install" or arg[1] == "i") then |
71 | + | |
72 | function removePackage(package) | |
73 | local pkgData = getPackageData(package) | |
74 | if (pkgData.isExecutable) then | |
75 | shell.run("rm /"..pkgData.exe) | |
76 | end | |
77 | shell.run("rm /kdpm/packages/"..package) | |
78 | end | |
79 | ||
80 | if (not fs.exists("/kdpm/") or not fs.exists("/kdpm/packages/") or not fs.exists("/kdpm/packages/json/")) then | |
81 | install_kdpm() | |
82 | end | |
83 | ||
84 | if (arg[1] == "install" or arg[1] == "i" or arg[1] == "get") then | |
85 | installPackage(arg[2]) | |
86 | elseif (arg[1] == "remove" or arg[1] == "uninstall" or arg[1] == "rm") then | |
87 | removePackage(arg[2]) | |
88 | elseif (arg[1] == "reinstall" or arg[1] == "ri" or arg[1] == "reget") then | |
89 | removePackage(arg[2]) | |
90 | sleep(0.05) | |
91 | installPackage(arg[2]) | |
92 | end |