This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
nateracecar5's profile picture

Redos

Started by nateracecar5, 25 May 2013 - 11:48 AM
nateracecar5 #1
Posted 25 May 2013 - 01:48 PM
PLEASE! Before commenting that you are "Getting the error 'bios:500: Domain not permitted", please look at the last bug at the bottom of this post. It is part of Computercraft and cannot be fixed by me

This is a to-be rednet OS. The installer code is found here: QJcHiiqU
Most of my updates you are receiving are fixes and additions. Rednet is to come soon.
Look at the bottom of this post in order to find the instructions on how to download, unless you are a pro at this ;)/>

For update 3.2+, there is a new hashing algorithm implemented to keep your passwords secret. It is SHA1, so you don't have to worry about people decrypting it. Also, because of the new hashing, you will have to delete your username and password files. Please look at bug #2 on the bottom to solve this problem. By the way, I have an automated solution for you to do it with.

So, anyway, welcome to RedOS v3.3! This has been dubbed the "changelog update" because it will now show changelogs for each new version. No more exploring to find changes.

The source code is found here: Go to GitHub

This OS has support for NDF-Boot+! Just change the default directory to .redos and the default file to .redos/os/redos

Features:
- GUI-Based File Explorer
- Hashed login system (Using SHA1)
- Changelog Viewer
- Shell access
- Rednet File Sharing
- Theme Changing
And More

SCREENIES!
Spoiler


If you choose not to start the code on startup, you must either create the NDF-BOOT+ setup, or type this into the console:

redos-start

Installer Code:
SpoilerInstaller Code:
THIS IS OUTDATED CODE

--Setting the colors
term.setBackgroundColor(colors.white)
term.setTextColor(colors.cyan)
term.clear()
term.setCursorPos(1,1)
loading = "yes"
installing = "true"
--Functions
local function centerPrint(text)
  local x, y = term.getSize()
  local x2, y2 = term.getCursorPos()
  term.setCursorPos(math.ceil((x/2) -(text:len()/2)), y2)
  write(text)
  term.setCursorPos(1,1)
end
local function downloadFiles(url, path)
for i = 1, 3 do
  local response = http.get(url)
  if response then
   local data = response.readAll()
   if path then
	local f = io.open(path, "w")
	f:write(data)
	f:close()
	sleep(2)
	installing = "false"
   end
   return true
  end
end
centerPrint(error("download: Download Failed"))
return false
end

local function load(yLoc)
  w, h = term.getSize()
  local x2, y2 = term.getCursorPos()
  loc = math.ceil(w/2)
  loc2 = yLoc
  while loading == "yes" do
  term.setCursorPos(loc-3, loc2)
  print("|O---|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
  print("|-O--|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
  print("|--O-|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
  print("|---O|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
  print("|--O-|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
  print("|-O--|")
  term.setCursorPos(loc-3, loc2)
  sleep(0.5)
end
end
--Main Code
w, h = term.getSize()
centerPrint("RedOS Installer")
paintutils.drawLine(1, 2, w, 2, colors.blue)
term.setTextColor(colors.cyan)
term.setBackgroundColor(colors.white)
term.setCursorPos(1, 4)
centerPrint("Installing Files....")
if not fs.exists(".redos") then
fs.makeDir(".redos")
if not fs.exists(".redos/os") then
  fs.makeDir(".redos/os")
end
if not fs.exists(".redos/programs") then
  fs.makeDir(".redos/programs")
end
end
parallel.waitForAny(function() downloadFiles("https://raw.github.com/redstonefreak589/redos/master/RedOS", ".redos/os/RedOS") end, function() load(9) end)
parallel.waitForAny(function() downloadFiles("https://raw.github.com/redstonefreak589/redos/master/Browser", ".redos/programs/browser") end, function() load(9) end)
parallel.waitForAny(function() downloadFiles("https://raw.github.com/redstonefreak589/redos/master/desktop", ".redos/os/desktop") end, function() load(9) end)
centerPrint("Download Success!", 9)
sleep(2)
term.setCursorPos(1,4)
term.clearLine()
centerPrint("Do you want to run RedOS on startup? Y | N")
event, key = os.pullEvent("key")
if key == 21 then
if fs.exists("/startup.old") then
  fs.delete("/startup.old")
end
if fs.exists("/startup") then
  fs.move("/startup", "/startup.old")
end
downloadFiles("https://raw.github.com/redstonefreak589/redos/master/startup", "startup")
term.setBackgroundColor(colors.black)
term.setTextColor(colors.white)
os.reboot()
elseif key == 49 then
term.setBackgroundColor(colors.black)
term.setTextColor(colors.white)
os.reboot()
end

If you want to get it in-game do:

pastebin get QJcHiiqU installer

Make sure NOT to delete the installer. It is used for auto-updating. If you do, however, delete the installer, the code will automatically download it if there is an update, which may appear to freeze the OS, but it is not.

There are three known bugs at this current time, one of which I cannot fix personally, but can be fixed:

1.) If there is no installer file when an update is available, you will get a "window:248: *blah blah blah*" error. I thought I fixed this, but I guess I didn't. Just run redos again after you get this error and it will fix itself.
2.) Because of the changes in update 3.2, you will have to delete your username and password files, then recreate them. If you would like this process to be automated, I've put an automated deleter on pastebin. To download it, just type

pastebin get D8bRAdNV loginFix
3.) If anyone uses github in their program for updating, they will now receive a "bios:500: Domain not permitted"
error, or something along the line of that. This also happens in my program. This is because there is a new segment in the computercraft config that whitelists websites the http api can connect to. For anyone using a program like this in CC v1.63+, you need to disable the domain whitelist for this program to work. It's located in the config, and will look like this:

# A semicolon limited list of wildcards for domains that can be accessed through the "http" API on Computers. Set this to "*" to access to the entire internet.
S:http_whitelist=*pastebin.com;*computercraft.info

Set it to "S:http_whitelist=*" and you should be all set
Edited on 19 July 2014 - 11:47 PM
FuuuAInfiniteLoop(F.A.I.L) #2
Posted 25 May 2013 - 02:03 PM
Unknow pastebin id…
Lyqyd #3
Posted 25 May 2013 - 03:35 PM
No code to show; locked.
lieudusty #4
Posted 25 May 2013 - 05:30 PM
Pictures?
nateracecar5 #5
Posted 25 May 2013 - 06:25 PM
Pictures uploaded. Going to work on some functions and features later. If you want, you can use the file browser to make and create files.
Lyqyd #6
Posted 25 May 2013 - 09:21 PM
Threads merged and unlocked.

You should have simply told us that you had code ready, I would have unlocked it. Feel free to update the OP.
nateracecar5 #7
Posted 25 May 2013 - 10:08 PM
Okay thanks
nutcase84 #8
Posted 29 May 2013 - 08:07 AM
Good job, but why is the theme blue if it's called "RedOS"?
nateracecar5 #9
Posted 31 May 2013 - 07:02 PM
Because my minecraft name is redstonefreak589 and it is going to be a Rednet OS soon. ;)/>
nateracecar5 #10
Posted 16 July 2013 - 05:24 PM
Updated to version 1.6, then broke that version, so updated to version 1.7. Thanks for all your guys's support! I will be updating with Rednet soon. Version 2. Can't wait!