Advertisement
swisszeni

startup

Dec 30th, 2014
1,781
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.22 KB | None | 0 0
  1. -- SPLITS A STRING INTO TWO PARTS, BEFORE AND AFTER THE DELIMITER
  2. function splitString(string, delimiter)
  3.   local parts={}
  4.   parts[1]=string:sub(0, (string:find(delimiter))-1)
  5.   parts[2]=string:sub((string:find(delimiter))+1)
  6.   return parts
  7. end
  8.  
  9.  
  10. -- CHECKS IF THE PROGRAM REQUIRES UPDATING
  11. function requiresUpdate(newestVersion)
  12.   -- IF THERE IS NO CHANGELOG: UPDATE
  13.   local file=io.open("changelog", "r")
  14.   if file == nil then
  15.     return true
  16.   end
  17.   -- IF IT IS OF AN OLDER VERSION: UPDATE
  18.   local versionLine=file:read()
  19.   local versionInfo=splitString(versionLine, "=")[2]
  20.   file:close()
  21.   if versionInfo~=newestVersion then
  22.     return true
  23.   end
  24.   return false
  25. end
  26.  
  27. -- PRINTS THE BASIC SOFTWARE INFORMATION
  28. function printSoftwareInfo()
  29.   print("---------------------------")
  30.   print("MLG MINING - SWISS EDITION")
  31.   print("WRITTEN BY ULTHEAN")
  32.   print("ADDITIONS BY SWISSZENI")
  33.   print("---------------------------")
  34. end
  35.  
  36. -- MAIN UPDATE CODE
  37. local updateConfig = http.get("https://raw.githubusercontent.com/swisszeni/MLG_Mining/master/updateList")
  38. if not updateConfig then
  39.   print("Error connecting to server")
  40.   return false
  41. end
  42. local newestVersionInfo=splitString(updateConfig.readLine(), "=")[2]
  43. if requiresUpdate(newestVersionInfo) then
  44.   -- BUILD THE LIST OF PROGRAMS TO UPDATE
  45.   local numPrograms=tonumber(splitString(updateConfig.readLine(), "=")[2])
  46.   local programs={}
  47.   for i=1, numPrograms do
  48.     local programInfo = updateConfig.readLine()
  49.     programs[splitString(programInfo, "=")[1]]=splitString(programInfo, "=")[2]
  50.   end
  51.   -- REMOVE ALL PROGRAMS, EXCEPT FOR THE CONFIG FILE
  52.   for k, v in pairs(programs) do
  53.     if k~="config" then
  54.       shell.run("rm", k)
  55.     end
  56.   end
  57.   -- ADD THE UPDATED PROGRAMS
  58.   for k, v in pairs(programs) do
  59.     shell.run("pastebin", "get", v, k)
  60.   end
  61.   -- PROVIDE UPDATE INFO
  62.   local impact=splitString(updateConfig.readLine(), "=")[2]
  63.   local advise=splitString(updateConfig.readLine(), "=")[2]
  64.   printSoftwareInfo()
  65.   print("UPDATE: PROGRAM UPDATED")
  66.   print("IMPACT: "..impact)
  67.   print("ADVISE: "..advise)
  68.   print("---------------------------")
  69. else
  70.   printSoftwareInfo()
  71.   print("UPDATE: NO UPDATE FOUND")
  72.   print("---------------------------")
  73. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement