Advertisement
Henness

Advanced Updater

Dec 15th, 2012
10,517
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.71 KB | None | 0 0
  1. -- Advanced Updater by Henness
  2. -- Version 1.1 1/13/2014
  3.  
  4. -- Config
  5. local author = "Henness0666"
  6. local project = "Advanced-Programs"
  7. local branch = "master"
  8. local screenw,screenh = term.getSize()
  9.  
  10. -- Functions
  11. function printIntro()
  12.     local intro = {
  13.         [1]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," ","8","8","8","8","8","8","8","b","."," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  14.         [2]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," ","Y","8","8","b"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  15.         [3]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","P","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  16.         [4]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","P"," ","8","8","8"," "," ",".","d","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," ","8","8","8","8","b","."," "," ","8","8","8","8","8","b","."," "," "," ",".","d","8","8","8","8","b"," ",".","d","8","8","b","."," "," "," ",".","d","8","8","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," ","d","8","8","P"," ","8","8","8","d","8","8","8"," ",".","d","8","8","b","."," "," "," ",".","d","8","8","b","."," "," ","8","8","8","d","8","8","8"," ","8","8","8","8","b","."," "," ","8","8","8","8","8","b",".","d","8","8","b","."," "," ",".","d","8","8","8","8","b"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  17.         [5]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","P"," "," ","8","8","8"," ","d","8","8","\""," ","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," "," "," "," ","\"","8","8","b"," ","8","8","8"," ","\"","8","8","b"," ","d","8","8","P","\""," "," "," ","d","8","P"," "," ","Y","8","b"," ","d","8","8","\""," ","8","8","8"," "," "," "," "," "," ","8","8","8","8","8","8","8","P","\""," "," ","8","8","8","P","\""," "," ","d","8","8","\"","\"","8","8","b"," ","d","8","8","P","\"","8","8","b"," ","8","8","8","P","\""," "," "," "," "," "," ","\"","8","8","b"," ","8","8","8"," ","\"","8","8","8"," ","\"","8","8","b"," ","8","8","K"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  18.         [6]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","P"," "," "," ","8","8","8"," ","8","8","8"," "," ","8","8","8"," ","Y","8","8"," "," ","8","8","P"," ",".","d","8","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," ","8","8","8"," "," "," "," "," ","8","8","8","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," ","8","8","8"," "," ","8","8","8"," ","8","8","8"," "," ","8","8","8"," ","8","8","8"," "," "," "," ",".","d","8","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," ","8","8","8"," ","\"","Y","8","8","8","8","b","."," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  19.         [7]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","8","8","8","8","8","8","8","8"," ","Y","8","8","b"," ","8","8","8"," "," ","Y","8","b","d","8","P"," "," ","8","8","8"," "," ","8","8","8"," ","8","8","8"," "," ","8","8","8"," ","Y","8","8","b","."," "," "," ","Y","8","b","."," "," "," "," "," ","Y","8","8","b"," ","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," ","Y","8","8",".",".","8","8","P"," ","Y","8","8","b"," ","8","8","8"," ","8","8","8"," "," "," "," ","8","8","8"," "," ","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," ","8","8","8"," "," "," "," "," "," ","X","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  20.         [8]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","d","8","8","P"," "," "," "," "," ","8","8","8"," "," ","\"","Y","8","8","8","8","8"," "," "," ","Y","8","8","P"," "," "," ","\"","Y","8","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," ","\"","Y","8","8","8","8","P"," ","\"","Y","8","8","8","8"," "," "," ","\"","Y","8","8","8","8","8"," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," "," ","\"","Y","8","8","P","\""," "," "," ","\"","Y","8","8","8","8","8"," ","8","8","8"," "," "," "," ","\"","Y","8","8","8","8","8","8"," ","8","8","8"," "," ","8","8","8"," "," ","8","8","8"," "," ","8","8","8","8","8","P","'"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  21.         [9]  = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","8","8","8"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  22.         [10] = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","Y","8","b"," ","d","8","8","P"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},
  23.         [11] = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","\"","Y","8","8","P","\""," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}
  24.     }
  25.     local str = "[PRESS ANY KEY TO SKIP]"
  26.     term.clear()
  27.     for i=1,#intro[1]-screenw do
  28.         term.setCursorPos(1, 1)
  29.         write(string.rep("-", screenw))
  30.         term.setCursorPos(1, screenh)
  31.         write(string.rep("-", (screenw/2)-(#str/2))..str..string.rep("-", (screenw/2)-(#str/2)))
  32.         sleep(0.001)
  33.         for key,value in pairs(intro) do
  34.             for xpos=1,screenw do
  35.                 term.setCursorPos(xpos, (screenh-11)/2+key)
  36.                 write(intro[key][xpos+i-1])
  37.             end
  38.         end
  39.     end
  40. end
  41.  
  42. function skip()
  43.     local id, key = os.pullEvent("key")
  44. end
  45.  
  46. function loadTable(name)
  47.     local file = fs.open(name,"r")
  48.     local data = file.readAll()
  49.     file.close()
  50.     return textutils.unserialize(data)
  51. end
  52.  
  53. function saveTable(table,name)
  54.     local file = fs.open(name,"w")
  55.     file.write(textutils.serialize(table))
  56.     file.close()
  57. end
  58.  
  59. function getLink(file)
  60.     return "https://raw.github.com/" .. author .. "/" .. project .. "/" .. branch .. "/" .. file
  61. end
  62.  
  63. function download(file, name)
  64.     print("Downloading, " .. file)
  65.     local data = http.get(getLink(file))
  66.     if data then
  67.         print(file .. " downloaded")
  68.         local file = fs.open(name,"w")
  69.         file.write(data.readAll())
  70.         file.close()
  71.         return true
  72.     end
  73. end
  74.  
  75. function updatePrograms()
  76.     term.clear()
  77.     term.setCursorPos(1,1)
  78.     print("Checking for Updates...")
  79.     if fs.exists("apconfig") then
  80.         if download("config", "tmpconfig") then
  81.             config = loadTable("apconfig")
  82.             tmpconfig = loadTable("tmpconfig")
  83.             for key,value in pairs(tmpconfig) do
  84.                 if tmpconfig[key]["version"] > config[key]["version"] then
  85.                     if fs.exists(key) then
  86.                         fs.delete(key)
  87.                     end
  88.                     download(key, tmpconfig[key]["path"])
  89.                 end
  90.             end
  91.             fs.delete("apconfig")
  92.             saveTable(tmpconfig, "apconfig")
  93.             fs.delete("tmpconfig")
  94.         else
  95.             print("Unable to connect to http://github.com/")
  96.         end
  97.     else
  98.         print("No config file was found.")
  99.         if download("config", "apconfig") then
  100.             config = loadTable("apconfig")
  101.             for key,value in pairs(config) do
  102.                 if fs.exists(key) then
  103.                     fs.delete(key)
  104.                 end
  105.                 download(key, config[key]["path"])
  106.             end
  107.         else
  108.             print("Unable to connect to http://github.com/")
  109.         end
  110.     end
  111.     print("All programs updated.")
  112.     print("Press any key to continue.")
  113.     skip()
  114. end
  115.  
  116. -- RUN
  117. parallel.waitForAny(printIntro, skip)
  118. updatePrograms()
  119. if fs.exists("advancedgui")then
  120.     shell.run("advancedgui")
  121. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement