diff --git a/resource/version/server.lua b/resource/version/server.lua index 969b97f..89bdfdd 100644 --- a/resource/version/server.lua +++ b/resource/version/server.lua @@ -17,11 +17,16 @@ function lib.versionCheck(repository) if response.prerelease then return end local latestVersion = response.tag_name:match('%d%.%d+%.%d+') - if not latestVersion then return end + if not latestVersion or latestVersion == currentVersion then return end - if currentVersion >= latestVersion then return end + local cv = { string.strsplit('.', currentVersion) } + local lv = { string.strsplit('.', latestVersion) } - print(('^3An update is available for %s (current version: %s)\r\n%s^0'):format(resource, currentVersion, response.html_url)) + for i = 1, #cv do + if tonumber(cv[i]) < tonumber(lv[i]) then + return print(('^3An update is available for %s (current version: %s)\r\n%s^0'):format(resource, currentVersion, response.html_url)) + end + end end, 'GET') end) end diff --git a/resource/version/shared.lua b/resource/version/shared.lua index 3c69b84..c1c1a3a 100644 --- a/resource/version/shared.lua +++ b/resource/version/shared.lua @@ -1,14 +1,20 @@ function lib.checkDependency(resource, minimumVersion, printMessage) local currentVersion = GetResourceMetadata(resource, 'version', 0):match('%d%.%d+%.%d+') - if currentVersion < minimumVersion then + if currentVersion ~= minimumVersion then + local cv = { string.strsplit('.', currentVersion) } + local mv = { string.strsplit('.', minimumVersion) } local msg = ("^1%s requires version '%s' of '%s' (current version: %s)^0"):format(GetInvokingResource() or GetCurrentResourceName(), minimumVersion, resource, currentVersion) - if printMessage then - return print(msg) - end + for i = 1, #cv do + if tonumber(cv[i]) < tonumber(mv[i]) then + if printMessage then + return print(msg) + end - return false, msg + return false, msg + end + end end return true