View difference between Paste ID: 1f6G9Rv2 and Fpt9sZvz
SHOW: | | - or go back to the newest paste.
1
-- This is eniallator's updater program.
2
-- The way it works is it will compare a version variable in 2 files; 1 pastebin link and 1 local file.
3
-- NOTE: it does not compare the contents of the file, it only compares a variable.
4
-- ================================================================================
5
--
6
-- To make a version variable in your file copy and paste the following into the file:
7
--
8
-- version = "*insert version here*"
9
--
10
-- This has to be in the local file aswell as the pastebin file to download.
11
-- ================================================================================
12
--
13
-- To add your file to be updated when running this program add the following to the filesToUpdate table:
14
--
15
-- *insert file name* = "*insert pastebin code after 'http://pastebin.com/'*"
16
--
17
-- The file name must correspond to your local file on your computercraft computer and the pastebin link has to correspond to your file in pastebin.
18
19-
local filesToUpdate = {Terminal = "DMKj3Jh2"}
19+
local filesToUpdate = {"LoginManager=qSjusmuJ","AccountManager=EQezMWsJ"}
20
-- Table for files/pastebin codes
21
22
function getFile(fileName, link)
23
  
24
  local file = http.get("http://pastebin.com/raw.php?i=" .. textutils.urlEncode(link))
25
  
26
  if file then
27
    
28
     local out = file.readAll()
29
     file.close()
30
     return out
31
     -- Returning contents of the pastebin file
32
  else
33
    
34
     return false
35
     -- Returning false if the link is invalid
36
  end
37
end
38
-- Function for downloading the files from pastebin, needs HTTP to run
39
40
function getVersion(fileContents)
41
  
42
  if fileContents then
43
    local _, numberChars = fileContents:lower():find('version = "')
44
    local fileVersion = ""
45
    local char = ""
46
    -- Declaring variables aswell as finding where in the fileContents argument is 'version = "'
47
  
48
    if numberChars then
49
      while char ~= '"' do
50
      
51
        numberChars = numberChars + 1
52
        char = fileContents:sub(numberChars,numberChars)
53
        fileVersion = fileVersion .. char
54
      end
55
      -- Making the version variable by putting every character from 'version = "' to '"'
56
    
57
      fileVersion = fileVersion:sub(1,#fileVersion-1)
58
      return fileVersion
59
    else
60
    
61
      return false
62
      -- If the function didn't find 'version = "' in the fileContents then it returns false
63
    end
64
  else
65
    
66
    return ""
67
  end
68
end
69
-- Finding the version number
70
71
for file, url in pairs(filesToUpdate) do
72
  
73
  if not fs.isDir(file) then
74
    
75
    local pastebinContents = getFile(file,url)
76
    -- Getting the pastebin file's contents
77
    
78
    if pastebinContents then
79
      if fs.exists(file) then
80
        
81
        local localFile = fs.open(file,"r")
82
        localContents = localFile.readAll()
83
        localFile.close()
84
        -- Getting the local file's contents
85
      end
86
      
87
      local pastebinVersion = getVersion(pastebinContents)
88
      local localVersion = getVersion(localContents)
89
      -- Defining version variables for each of the file's contents
90
      
91
      if not pastebinVersion then
92
        
93
        print("[Error  ] the pastebin code for " .. file .. " does not have a version variable")
94
        -- Tests if the pastebin code's contents has a version variable or not
95
        
96
      elseif not localVersion then
97
        
98
        print("[Error  ] " .. file .. " does not have a version variable")
99
        -- Tests if the local file doesn't have the version variable
100
        
101
      elseif pastebinVersion == localVersion then
102
        
103
        print("[Success] " .. file .. " is already the latest version")
104
        -- If the pastebin file's version is equal to the local file's version then it does nothing
105
      else
106
        
107
        endFile = fs.open(file,"w")
108
        endFile.write(pastebinContents)
109
        endFile.close()
110
        
111
        print("[Success] " .. file .. " has been updated to version " .. pastebinVersion)
112
        -- If the versions are not the same then it will write over the current local file to update it to the pastebin version
113
      end
114
    else
115
      
116
      print("[Error  ] " .. file .. " has an invalid link")
117
     end
118
  else
119
    
120
    print("[Error  ] " .. file .. " is a directory")
121
  end
122
end
123
-- Error messages catching different errors