SHOW:
|
|
- or go back to the newest paste.
1 | - | if not http then |
1 | + | local url = "https://raw.github.com/LDDestroier/CraftBang/master/craftbang/" |
2 | - | print "It doesn't seem like you have http enabled." |
2 | + | local files = {} |
3 | - | print "Enable it first, restart minecraft, then run the installer again." |
3 | + | local filelist = { |
4 | - | return |
4 | + | 'desktop.lua'; |
5 | 'dialog.lua'; | |
6 | 'panel.lua'; | |
7 | - | local url = "https://raw.github.com/Kingdaro/CraftBang/master/installer" |
7 | + | 'session.lua'; |
8 | - | local instPath = ".cbinstaller" |
8 | + | 'terminal.lua'; |
9 | 'lib/arealib.lua'; | |
10 | - | print "Downloading installer" |
10 | + | 'lib/redirect.lua'; |
11 | } | |
12 | - | local download = http.get(url) |
12 | + | |
13 | - | if download then |
13 | + | local function clear() |
14 | - | local file = fs.open(instPath, 'w') |
14 | + | term.clear() |
15 | - | file.write(download.readAll()) |
15 | + | term.setCursorPos(1,1) |
16 | end | |
17 | - | download.close() |
17 | + | |
18 | clear() | |
19 | - | shell.run(instPath) |
19 | + | local errors = false |
20 | - | fs.delete(instPath) |
20 | + | for i=1, #filelist do |
21 | local filename = filelist[i] | |
22 | - | for _,v in pairs(rs.getSides()) do |
22 | + | local fullurl = url .. filename |
23 | - | disk.eject(v) |
23 | + | local localpath = '/craftbang/'..filename |
24 | ||
25 | local download = http.get(fullurl) | |
26 | - | write "Restart now? [Y/n] " |
26 | + | if download then |
27 | print("Fetching "..filename) | |
28 | files[localpath] = download.readAll() | |
29 | - | print "I'll let you return to your shell then." |
29 | + | download.close() |
30 | - | print "Do what you need to do." |
30 | + | |
31 | print("Couldn't get '"..filename .. "'.") | |
32 | - | textutils.slowWrite("Goodbye!") |
32 | + | print "Installation failed." |
33 | - | sleep(1) |
33 | + | return |
34 | - | os.reboot() |
34 | + | |
35 | end | |
36 | - | else |
36 | + | sleep(1) |
37 | - | print "Couldn't get installer" |
37 | + | |
38 | local installed = false | |
39 | if fs.exists('/craftbang') then | |
40 | clear() | |
41 | installed = true | |
42 | ||
43 | write "Overwrite current installation? [Y/n] " | |
44 | local input = read():lower():sub(1,1) | |
45 | if input == 'n' then | |
46 | print "Will not write files." | |
47 | return | |
48 | end | |
49 | fs.delete('/craftbang') | |
50 | end | |
51 | ||
52 | clear() | |
53 | fs.makeDir('/craftbang') | |
54 | fs.makeDir('/craftbang/lib') | |
55 | for path, content in pairs(files) do | |
56 | print("Writing "..path) | |
57 | local file = fs.open(path, 'w') | |
58 | file.write(content) | |
59 | file.close() | |
60 | end | |
61 | print "Installation complete!" | |
62 | sleep(1) | |
63 | ||
64 | if not installed then | |
65 | clear() | |
66 | ||
67 | local startupContent = [[ | |
68 | shell.run("craftbang/session.lua") | |
69 | ]] | |
70 | ||
71 | write "Run CraftBang on startup? " | |
72 | if fs.exists('startup.lua') then | |
73 | print "\nYour current startup file will be renamed to 'startup-old.lua'." | |
74 | end | |
75 | write "[Y/n] " | |
76 | ||
77 | local input = read():lower():sub(1,1) | |
78 | ||
79 | if input == 'n' then | |
80 | print "In that case, run 'craftbang/session.lua' to start CraftBang." | |
81 | else | |
82 | if fs.exists('startup.lua') then | |
83 | if fs.exists('startup-old.lua') then | |
84 | fs.delete('startup-old.lua') | |
85 | end | |
86 | fs.move('startup.lua','startup-old.lua') | |
87 | end | |
88 | ||
89 | local startup = fs.open('startup.lua', 'w') | |
90 | startup.write(startupContent) | |
91 | startup.close() | |
92 | print "CraftBang will now run on startup." | |
93 | end | |
94 | end |