Advertisement
PaymentOption

temp startup

Apr 29th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.55 KB | None | 0 0
  1. function os.pullEvent()
  2. local event, p1, p2, p3, p4, p5 = os.pullEventRaw()
  3. if event == "terminate" then
  4. shell.run("startup")
  5. end
  6. return event, p1, p2, p3, p4, p5
  7. end
  8.  
  9. sid = 0
  10. run = true
  11.  
  12. version = "v. 1.2.1 Beta"
  13. file = fs.open("ShadOS/version", "w")
  14. file.write(tostring(version))
  15. file.close()
  16.  
  17. -- ShadOS Update Code by PaymentOption --
  18. rednet.open("top")
  19. rednet.open("right")
  20. rednet.open("left")
  21. rednet.open("back")
  22. rednet.open("bottom")
  23.  
  24. function cPrint(height, string)
  25.     local w,h = term.getSize()
  26.     local xPos = w/2 - string.len(string)/2
  27.    
  28.     term.setCursorPos(xPos, height)
  29.     term.write(string)
  30. end
  31. function rPrint(height, string)
  32.     local w,h = term.getSize()
  33.     local xPos = w - string.len(string)
  34.    
  35.     term.setCursorPos(xPos, height)
  36.     term.write(string)
  37. end
  38. function printBorder()
  39.     local w,h = term.getSize()
  40.     write(" ".. string.rep('*', w-2).."\n")
  41.     for i=1, h-2 do write(" "..'*'..string.rep(" ", w-4)..'*'.."\n") end
  42.     write(" ".. string.rep('*', w-2))
  43. end
  44. function clear() term.clear(); term.setCursorPos(1,1) end
  45.  
  46. function checkUpdate()
  47.     local updateServer = 505
  48.     term.clear()
  49.     term.setCursorPos(1,1)
  50.     printBorder()
  51.    
  52.     term.setCursorPos(3,2)
  53.     print("Checking for Updates...")
  54.     rPrint(17, "Current Version: "..version.." *")
  55.     sleep(2)
  56.  
  57.     rednet.send(updateServer, "checkUpdate")
  58.     sender, message = rednet.receive(0.8)
  59.    
  60.     if sender == updateServer and message == "ready" then
  61.         rednet.send(updateServer, version)
  62.         sender, message = rednet.receive(0.8)
  63.         if sender == updateServer and message == "false" then
  64.             term.setCursorPos(3,3); term.write("No updates found."); cPrint(6, "OS Up to date!"); sleep(1.3) return
  65.         else
  66.             rednet.send(updateServer, "ready")
  67.             sender, message = rednet.receive(0.8)
  68.             if sender == updateServer then
  69.                 term.setCursorPos(3,3); print("Updating...")
  70.                 fs.delete("startup"); local file = fs.open("startup", "w"); file.write(tostring(message)); file.close()
  71.                
  72.                 sender, message = rednet.receive(0.8)
  73.                 fs.delete("ShadOS/main"); file = fs.open("ShadOS/main", "w"); file.write(tostring(message)); file.close()
  74.                
  75.                 sender, message = rednet.receive(0.8)
  76.                 fs.delete("ShadOS/change"); file = fs.open("ShadOS/change", "w"); file.write(tostring(message)); file.close()
  77.                
  78.                 sender, message = rednet.receive(0.8)
  79.                 fs.delete("ShadOS/originalos"); file = fs.open("ShadOS/originalos", "w"); file.write(tostring(message)); file.close()
  80.                
  81.                 sender, message = rednet.receive(0.8)
  82.                 fs.delete("ShadOS/Programs/calc"); file = fs.open("ShadOS/Programs/calc", "w"); file.write(tostring(message)); file.close()
  83.                
  84.                 sender, message = rednet.receive(0.8)
  85.                 fs.delete("ShadOS/Programs/irc"); file = fs.open("ShadOS/Programs/irc", "w"); file.write(tostring(message)); file.close()
  86.                
  87.                 sender, message = rednet.receive(0.8)
  88.                 fs.delete("ShadOS/Programs/menu"); file = fs.open("ShadOS/Programs/menu", "w"); file.write(tostring(message)); file.close()
  89.                
  90.                 sender, message = rednet.receive(0.8)
  91.                 fs.delete("ShadOS/Games/laserblast"); file = fs.open("ShadOS/Games/laserblast", "w"); file.write(tostring(message)); file.close()
  92.                
  93.                 sender, message = rednet.receive(0.8)
  94.                 fs.delete("ShadOS/Games/rpg"); file = fs.open("ShadOS/Games/rpg", "w"); file.write(tostring(message)); file.close()
  95.                
  96.                 sender, message = rednet.receive(0.8)
  97.                 fs.delete("ShadOS/Games/shadomon"); file = fs.open("ShadOS/Games/shadomon", "w"); file.write(tostring(message)); file.close()
  98.                
  99.                 sender, message = rednet.receive(0.8)
  100.                 fs.delete("ShadOS/Games/menu"); file = fs.open("ShadOS/Games/menu", "w"); file.write(tostring(message)); file.close()
  101.                
  102.                 sender, message = rednet.receive(0.8)
  103.                 fs.delete("ShadOS/Movies/menu"); file = fs.open("ShadOS/Movies/menu", "w"); file.write(tostring(message)); file.close()
  104.                
  105.                 cPrint(6, "Successfully updated!"); sleep(1.3); clear(); os.reboot()
  106.             else cPrint(6, "Failure: Request no acknowledged"); sleep(1.3); clear() end
  107.         end
  108.     else cPrint(6, "Failure: Request no acknowledged"); sleep(1.3); clear() end
  109. end
  110. checkUpdate()
  111. -----------------------------------------
  112.  
  113. function createMenu(id, text)
  114.     if sid == id then
  115.         write("> ")
  116.     else
  117.         write("* ")
  118.     end
  119.     print(text)
  120. end
  121.  
  122. function logo()
  123.    term.clear()
  124.    term.setCursorPos(1,1)
  125.     write"================================================\n|   -_-/  ,,           |\\     ,-||-,     -_-/  |\n|  (_ /   ||      _     \\\\   ('|||  )   (_ /   |\n| (_ --_  ||/\\\\  < \\,  / \\\\ (( |||--)) (_ --_  |\n|   --_ ) || ||  /-|| || || (( |||--))   --_ ) |\n|  _/  )) || || (( || || ||  ( / |  )   _/  )) |\n| (_-_-   \\\\ |/  \\/\\\\  \\\\/    -____-   (_-_-   |\n============_/=================================="
  126.     time = os.time()
  127.     term.setCursorPos(1,18)
  128.     write(version)
  129.     term.setCursorPos(41,18)
  130.     write(textutils.formatTime(time))
  131. end
  132.     while true do
  133.     logo()
  134.    if fs.exists("ShadOS/user") and fs.exists("ShadOS/pass") then
  135.     term.setCursorPos(12,10)
  136.     write("==========Log In==========")
  137.     term.setCursorPos(12,13)
  138.     write("==========================")
  139.     term.setCursorPos(12,11)
  140.     write("User: ")
  141.     term.setCursorPos(12,12)
  142.     write("Pass: ")
  143.     term.setCursorPos(18,11)
  144.     username = read()
  145.     term.setCursorPos(18,12)
  146.     password = read("*")
  147.     uFile = fs.open("ShadOS/user", "r")
  148.     user = uFile.readAll()
  149.     uFile.close()
  150.     pFile = fs.open("ShadOS/pass", "r")
  151.     pass = pFile.readAll()
  152.     pFile.close()
  153.    
  154.     if username == (user) and password == (pass) then
  155.      term.clear()
  156.      term.setCursorPos(1,1)
  157.      sleep(.1)
  158.      break
  159.     else
  160.      term.clearLine(10)
  161.      term.clearLine(11)
  162.      term.clearLine(12)
  163.      term.setCursorPos(12,10)
  164.      write("==========================")
  165.      term.setCursorPos(12,13)
  166.      write("==========================")
  167.      term.setCursorPos(12,11)
  168.      write("          Failed          ")
  169.      term.setCursorPos(12,12)
  170.      write("          Log In          ")   
  171.      sleep(2)
  172.      os.reboot()
  173.     end
  174.    else
  175.     term.setCursorPos(12,10)
  176.  
  177.     write("=========Register=========")
  178.     term.setCursorPos(12,13)
  179.     write("==========================")
  180.     term.setCursorPos(12,11)
  181.     write("User: ")
  182.     term.setCursorPos(12,12)
  183.     write("Pass: ")
  184.     term.setCursorPos(18,11)
  185.     username = read()
  186.     term.setCursorPos(18,12)
  187.     password = read("*")
  188.     if string.len(username) > 15 or string.len(password) > 15 then os.reboot()
  189.     else
  190.      local user = fs.open("ShadOS/user", "w")
  191.      user.write(username)
  192.      user.close()
  193.      local pass = fs.open("ShadOS/pass", "w")
  194.      pass.write(password)
  195.      pass.close()
  196.      term.clear()
  197.      term.setCursorPos(1,1)
  198.      sleep(.1)
  199.      break
  200.      end
  201.    
  202.    
  203. end
  204. end
  205. shell.run("ShadOS/main")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement