1
0
Fork 0
forked from Simnation/Main
Main/resources/[standalone]/ox_lib/resource/version/server.lua
2025-07-09 19:26:17 +02:00

46 lines
1.6 KiB
Lua

--[[
https://github.com/overextended/ox_lib
This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
Copyright © 2025 Linden <https://github.com/thelindat>
]]
function lib.versionCheck(repository)
local resource = GetInvokingResource() or GetCurrentResourceName()
local currentVersion = GetResourceMetadata(resource, 'version', 0)
if currentVersion then
currentVersion = currentVersion:match('%d+%.%d+%.%d+')
end
if not currentVersion then return print(("^1Unable to determine current resource version for '%s' ^0"):format(resource)) end
SetTimeout(1000, function()
PerformHttpRequest(('https://api.github.com/repos/%s/releases/latest'):format(repository), function(status, response)
if status ~= 200 then return end
response = json.decode(response)
if response.prerelease then return end
local latestVersion = response.tag_name:match('%d+%.%d+%.%d+')
if not latestVersion or latestVersion == currentVersion then return end
local cv = { string.strsplit('.', currentVersion) }
local lv = { string.strsplit('.', latestVersion) }
for i = 1, #cv do
local current, minimum = tonumber(cv[i]), tonumber(lv[i])
if current ~= minimum then
if current < minimum then
return print(('^3An update is available for %s (current version: %s)\r\n%s^0'):format(resource, currentVersion, response.html_url))
else break end
end
end
end, 'GET')
end)
end
lib.versionCheck('communityox/ox_lib')