Advertisement
superkh

Setup

Feb 8th, 2016
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.09 KB | None | 0 0
  1. os.pullEvent = os.pullEventRaw
  2. --load APIS
  3. os.loadAPI("os/APIS/A")
  4. os.loadAPI("os/APIS/buf")
  5. --Vars------------------------------------------------------------
  6. local w,h = term.getSize()
  7. local bsetup = nil
  8. local user = nil
  9. local pass = nil
  10. local AdminPass = nil
  11. local conf = nil
  12. local bsetup = buf.createBuffer()
  13. --config stuff
  14. local conf = A.getT("os/files/config")
  15. local ver = conf["VER"]
  16. --local functions
  17. local function setT(scr,save)
  18.       fs.delete(scr)
  19.       local file = fs.open(scr,"w")
  20.       file.write(textutils.serialize(save))
  21.       file.close()
  22. end
  23. local function check()
  24.     for i=0,100,5 do
  25.         buf.increnetLoadbar(bufbar,i,true)
  26.         sleep(.01)
  27.     end
  28. end
  29. local function preload()
  30.   --setup load screen
  31.   buf.bc(colors.blue)
  32.   buf.clsB(bsetup)
  33.   buf.drawImageASCII(bsetup,5,4,"os/images/AsciiArt",colors.blue,colors.grey)
  34.   bufbar = buf.createLoadbar(bsetup,5,math.floor(h/2+2),math.floor(w-4),math.floor(h/2+3),colors.gray,colors.green,0)
  35.   buf.drawLoadbar(bufbar)
  36.   buf.drawBuffer(bsetup)
  37.   check()
  38.   --setup main screen
  39.   buf.tc(colors.white)
  40.   buf.clsB(bsetup,colors.white)
  41.   buf.drawImage(bsetup,1,1,"os/images/setup")
  42.   buf.clsLx(bsetup,1)
  43.   buf.wCentered(bsetup,"Welcome",1)
  44.   buf.wLeft(bsetup,"SuperOS Setup!",1)
  45.   buf.wRight(bsetup,"V:"..ver,1)
  46.   buf.clsLx(bsetup,h)
  47.   return true
  48. end
  49. local function dm()
  50.     buf.drawFilledBox(bsetup,1,2,w,h-1,colors.white,colors.black," ")
  51.     buf.drawBuffer(bsetup)
  52.     ---------
  53. end
  54. --Handel Main Events
  55. local function SetAdmin()
  56.     local run = true
  57.     local UnConfermedAdminPass = nil
  58.     local ConfermAdminPass = nil
  59.     while run do
  60.         dm()
  61.         buf.tc(colors.red)
  62.         buf.bc(colors.white)
  63.         buf.wCentered(bsetup,"Admin Setup",3)
  64.         buf.wCentered(bsetup,"UserName: Admin  ",5)
  65.         buf.wCentered(bsetup,"PassWord:        ",7)
  66.         buf.wCentered(bsetup,"Conferm PassWord:               ",8)
  67.         buf.drawBuffer(bsetup)
  68.         term.setCursorPos(math.floor(w/2-18/2)+11,7)
  69.         term.setTextColor(colors.red)
  70.         term.setBackgroundColor(colors.white)
  71.         UnConfermedAdminPass = read("*")
  72.         term.setCursorPos(math.floor(w/2-18/2)+11,8)
  73.         ConfermAdminPass = read("*")
  74.         if UnConfermedAdminPass ~= ConfermAdminPass then
  75.             --incorrect match
  76.             buf.wCentered(bsetup,"Passwords Do Not Match!",10)
  77.             buf.wCentered(bsetup,"Please Try Again! ",11)
  78.             buf.drawBuffer(bsetup)
  79.             sleep(0.5)
  80.         else
  81.             --correct match
  82.             AdminPass = ConfermAdminPass
  83.             local src = "os/users/Admin/Uconfig"
  84.             local Aconf = A.getT(src)
  85.             Aconf["PW"] = AdminPass
  86.             A.setT(src,Aconf)
  87.             --End grafical stuff
  88.             buf.pos(math.floor(w/2-18/2)+11,7)
  89.             buf.bWriteL(bsetup,string.rep("*",#AdminPass))
  90.             buf.pos(math.floor(w/2-18/2)+11,8)
  91.             buf.bWriteL(bsetup,string.rep("*",#AdminPass))
  92.             buf.wCentered(bsetup,"Password Saved",11,colors.green)
  93.             buf.drawBuffer(bsetup)
  94.             sleep(1)
  95.             run = false
  96.         end
  97.     end
  98.     dm()
  99. end
  100. local function CreateUser()
  101.   local function create()
  102.     local run = true
  103.     local UnConfermedUserPass = nil
  104.     local ConfermUserPass = nil
  105.     while run do
  106.         dm()
  107.         buf.tc(colors.red)
  108.         buf.bc(colors.white)
  109.         buf.wCentered(bsetup,"User Setup",3)
  110.         buf.wCentered(bsetup,"UserName:        ",5)
  111.         buf.wCentered(bsetup,"PassWord:        ",7)
  112.         buf.wCentered(bsetup,"Conferm PassWord:               ",8)
  113.         buf.drawBuffer(bsetup)
  114.         if user ~= nil then
  115.             buf.pos(math.floor(w/2-18/2)+11,5)
  116.             buf.bWriteL(bsetup,user,colors.red,colors.white)
  117.         else
  118.             term.setCursorPos(math.floor(w/2-18/2)+11,5)
  119.             term.setTextColor(colors.red)
  120.             term.setBackgroundColor(colors.white)
  121.             user = read()
  122.             buf.pos(math.floor(w/2-18/2)+11,5)
  123.             buf.bWriteL(bsetup,user,colors.red,colors.white)
  124.         end
  125.         buf.drawBuffer(bsetup)
  126.         term.setTextColor(colors.red)
  127.         term.setBackgroundColor(colors.white)
  128.         term.setCursorPos(math.floor(w/2-18/2)+11,7)
  129.         UnConfermedUserPass = read("*")
  130.         term.setCursorPos(math.floor(w/2-18/2)+11,8)
  131.         ConfermUserPass = read("*")
  132.         if UnConfermedUserPass ~= ConfermUserPass then
  133.             --incorrect match
  134.             buf.wCentered(bsetup,"Passwords Do Not Match!",10)
  135.             buf.wCentered(bsetup,"Please Try Again! ",11)
  136.             buf.drawBuffer(bsetup)
  137.             sleep(0.5)
  138.         else
  139.             --correct match
  140.             pass = ConfermUserPass
  141.             if fs.exists("os/users/"..user) == false then
  142.                 fs.copy("os/files/UserData","os/users/"..user)
  143.                 local Cpath = A.getT("os/users/"..user.."/Uconfig")
  144.                 Cpath["PW"] = pass
  145.                 setT("os/users/"..user.."/Uconfig",Cpath)
  146.                 buf.wCentered(bsetup,"User File created",11,colors.green)
  147.                 run = false
  148.             else
  149.                 user = nil
  150.                 UnConfermedUserPass = nil
  151.                 ConfermUserPass = nil
  152.                 buf.wCentered(bsetup,"User Creation Failed",11,colors.red)
  153.             end
  154.             --End grafical stuff
  155.             buf.pos(math.floor(w/2-18/2)+11,7)
  156.             buf.bWriteL(bsetup,string.rep("*",#pass))
  157.             buf.pos(math.floor(w/2-18/2)+11,8)
  158.             buf.bWriteL(bsetup,string.rep("*",#pass))
  159.             buf.drawBuffer(bsetup)
  160.             sleep(2)
  161.         end
  162.     end
  163.     dm()
  164.   end
  165.   local function CheckUser()
  166.     dm()
  167.     buf.drawImage(bsetup,1,1,"os/images/update")
  168.     local passage = "Create Another User?"
  169.     buf.pos(math.floor(w/2-#passage/2)+1,6)
  170.     buf.bc(colors.blue)
  171.     buf.tc(colors.white)
  172.     buf.bWriteL(bsetup,passage)
  173.     buf.pos(17,8)
  174.     buf.bc(colors.green)
  175.     buf.tc(colors.red)
  176.     buf.bWriteL(bsetup,"YES!")
  177.     buf.pos(30,8)
  178.     buf.bc(colors.red)
  179.     buf.tc(colors.green)
  180.     buf.bWriteL(bsetup,"NO!")
  181.     buf.drawBuffer(bsetup)
  182.     while true do
  183.         local arg = { os.pullEvent() }
  184.         if arg[1]=="mouse_click" then
  185.             if arg[2]==1 then
  186.                 if arg[3]>=14 and arg[3]<=24 then
  187.                     if arg[4]>=8 and arg[4]<=11 then
  188.                         return true
  189.                     end
  190.                 elseif  arg[3]>=26 and arg[3]<=36 then
  191.                     if arg[4]>=8 and arg[4]<=11 then
  192.                         return false
  193.                     end
  194.                 end
  195.             end
  196.         elseif arg[1]=="key" then
  197.             if arg[2]==28 then
  198.                 return true
  199.             end
  200.         end
  201.     end
  202.   end
  203.   create()
  204.   while CheckUser() do
  205.     user = nil
  206.     UnConfermedUserPass = nil
  207.     ConfermUserPass = nil
  208.     create()
  209.   end
  210. end
  211. local function main()
  212.   preload()
  213.   SetAdmin()
  214.   CreateUser()
  215.   dm()
  216. end
  217. local ok, err = pcall(main)
  218. if not ok then
  219.     A.Error(err)
  220. else
  221.     fs.delete("os/files/setup")
  222.     fs.delete("os/images/setup")
  223.     if fs.exists("Installer") then
  224.         fs.delete("Installer")
  225.     end
  226.     os.reboot()
  227. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement