Advertisement
PaymentOption

sxwos by Sxw1212

Sep 10th, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.34 KB | None | 0 0
  1. oldPull=os.pullEvent
  2. os.pullEvent=os.pullEventRaw
  3. function bboot(p)
  4. if chroot then
  5. chroot.chroot(p)
  6. end
  7. end
  8. function run(p)
  9. os.pullEvent=oldPull
  10. print("Running "..p)
  11. dofile(p)
  12. end
  13. os.loadAPI("/chroot")
  14. bootd={"/boot","/disk/boot","/net/","/sxwos"}
  15.  
  16. function clear()
  17.     x,y=term.getSize()
  18.     term.clear()
  19.     term.setCursorPos(1,1)
  20.     write("+")
  21.    
  22.     for i=1,x-3 do
  23.         write("-")
  24.     end
  25.    
  26.     write("+")
  27.     term.setCursorPos(1,2)
  28.    
  29.     for i=1,y-2 do
  30.         print("|")
  31.     end
  32.     write("+")
  33.    
  34.     for i=1,x-3 do
  35.         write("-")
  36.     end
  37.     write("+")
  38.    
  39.     for i=1,y-2 do
  40.         term.setCursorPos(x-1,i+1)
  41.         write("|")
  42.     end
  43.     term.setCursorPos(2,2)
  44. end
  45.  
  46. function l()
  47.     x,y=term.getCursorPos()
  48.     term.setCursorPos(2,y+1)
  49. end
  50.  
  51. function menu()
  52.     clear()
  53.     write("Hello! Welcome to SxwGRUB! Please wait...")
  54.     sleep(1)
  55.     l()
  56.    
  57.     write("Scanning for boot files...")
  58.     bf,bd=scanboot()
  59.    
  60.     if not bd then
  61.         l()
  62.         write("Oh noe! No boot file detected.")
  63.         l()
  64.         write("Please insert a boot disk and install an os.")
  65.         sleep(5)
  66.         os.shutdown()
  67.     else
  68.         clear()
  69.         if #bf==1 then
  70.             write(bf[1].." selected. Booting...")
  71.             sleep(1)
  72.             bboot(bf[1])
  73.             if chroot then
  74.                 run("/boot.lua")
  75.             else
  76.                 run(bf[1].."/boot.lua")
  77.             end
  78.             clear()
  79.             write("SxwGrub Unloaded. Goodbye!")
  80.             sleep(1)
  81.         end
  82.         write("Detected boot files, press the number to boot:")
  83.         local i=1
  84.         for k,v in ipairs(bf) do
  85.             l()
  86.             write("["..i.."] "..v)
  87.             i=1+1
  88.         end
  89.         while true do
  90.             ev,t=os.pullEvent("char")
  91.             if bf[tonumber(t)] then
  92.                 l()
  93.                 write(bf[tonumber(t)].." selected. Booting...")
  94.                 sleep(1)
  95.                 term.clear()
  96.                 term.setCursorPos(1,1)
  97.                 sleep(1)
  98.                 bboot(bf[tonumber(t)])
  99.                 if chroot then
  100.                     run("boot.lua")
  101.                 else
  102.                     run(bf[tonumber(t)].."/boot.lua")
  103.                 end
  104.                 clear()
  105.                 write("SxwGrub Unloaded. Goodbye!")
  106.                 sleep(1)
  107.                 os.shutdown()
  108.             end
  109.         end
  110.     end
  111. end
  112.  
  113. function scanboot()
  114.     local bf={}
  115.     local i=1
  116.     for k,v in ipairs(bootd) do
  117.         if scan(v) then
  118.             l()
  119.             bd=true
  120.             write("["..i.."] Boot file detected at "..v.."bios.lua")
  121.             bf[i]=v
  122.             i=i+1
  123.         end
  124.     end
  125.     return bf,bd
  126. end
  127.  
  128. function scan(dir)
  129.     l()
  130.     write("Scanning "..dir)
  131.     r=fs.open(dir.."/boot.lua","r")
  132.     if r then
  133.         r.close()
  134.         return true
  135.     end
  136. end
  137.  
  138. if os.loadAPI("/cmdx") then
  139.     nosdk="sxwbootKILL"
  140.     parallel.waitForAny(menu,cmdx.nosd)
  141. else
  142.     menu()
  143. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement