You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Grichelde/GricheldeUpgrade.lua

111 lines
3.5 KiB
Lua

-- read namespace from global env
local _G = _G
local Grichelde = _G.Grichelde
local pairs, find, color, cOrange, toNumber = Grichelde.functions.pairs, Grichelde.functions.find, Grichelde.functions.color, Grichelde.functions.cOrange, Grichelde.functions.toNumber
function Grichelde:Upgrade_To_v060()
self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.6.0"))
local replacements = self.db.profile.replacements or {}
self:DebugPrint("Upgrade_To_v060 : old database")
self:DebugPrint(replacements)
for _, replTable in pairs(replacements) do
replTable["ignoreCase"] = not replTable["caseSensitive"]
replTable["caseSensitive"] = nil
end
self:DebugPrint("Upgrade_To_v060 : new database")
self:DebugPrint(replacements)
return 0, 6, 0
end
function Grichelde:Upgrade_To_v070()
self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.7.0"))
local replacements = self.db.profile.replacements or {}
self:DebugPrint("Upgrade_To_v070 : old replacements")
self:DebugPrint(replacements)
for _, replTable in pairs(replacements) do
replTable["exactCase"] = not replTable["ignoreCase"]
replTable["ignoreCase"] = nil
end
self:DebugPrint("Upgrade_To_v070 : new replacements")
self:DebugPrint(replacements)
return 0, 7, 0
end
function Grichelde:Upgrade_To_v072()
self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.7.2"))
self:DebugPrint("Upgrade_To_v072 : old database")
self:DebugPrint(self.db.profile)
self.db.profile["minimapButton"] = { hide = false }
self:DebugPrint("Upgrade_To_v072 : new database")
self:DebugPrint(self.db.profile)
return 0, 7, 2
end
function Grichelde:Upgrade_To_v080()
self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.8.0"))
local replacements = self.db.profile.replacements or {}
self:DebugPrint("Upgrade_To_v080 : old replacements")
self:DebugPrint(replacements)
for _, replTable in pairs(replacements) do
replTable["active"] = true
end
self:DebugPrint("Upgrade_To_v080 : new replacements")
self:DebugPrint(self.db.profile)
return 0, 8, 0
end
function Grichelde:UpgradeDatabase()
local dbVersion = self.db.global.version or "0.0.0"
self:DebugPrint("Database version:", dbVersion)
local _, _, maj, min, pat = find(dbVersion, "(%d+)%.(%d+)%.(%d+).*")
local major, minor, patch = toNumber(maj) or 0, toNumber(min) or 0, toNumber(pat) or 0
local upgrade = 0
local error = false
if major == 0 then
if minor < 6 then
upgrade = upgrade + 1
major, minor, patch = self:Upgrade_To_v060(dbVersion)
end
if minor < 7 then
upgrade = upgrade + 1
major, minor, patch = self:Upgrade_To_v070(dbVersion)
end
if minor == 7 then
if patch < 2 then
upgrade = upgrade + 1
major, minor, patch = self:Upgrade_To_v072(dbVersion)
end
end
if minor < 8 then
upgrade = upgrade + 1
major, minor, patch = self:Upgrade_To_v080(dbVersion)
end
end
if upgrade == 0 then
self:DebugPrint("Database up-to-date")
-- bump version number even if no update is required
self.db.global.version = self.version
else
if not error then
self.db.global.version = self.version
self:PrefixedPrint(color(Grichelde.COLOR_CODES.GREEN, self.L.Upgrade_Successful))
end
end
end