From 1e19ea02908b5d302322bb83ebd4c8e20aa155de Mon Sep 17 00:00:00 2001 From: Lorenzo Cogotti Date: Sun, 2 Oct 2022 15:58:50 +0200 Subject: [PATCH] [crush] Add Lua version compatibility check. --- crush.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/crush.lua b/crush.lua index 5777248..d7d4cd2 100644 --- a/crush.lua +++ b/crush.lua @@ -7,6 +7,33 @@ local io = require 'io' local os = require 'os' +-- Lua version check + +local function check_version() + -- Generic Lua version check - 5.2 required + if _VERSION then + local maj, min = _VERSION:match("Lua (%d+)%.(%d+)") + + if maj and min then + maj, min = tonumber(maj), tonumber(min) + if maj > 5 or (maj == 5 and min >= 2) then + return true + end + end + end + + -- LuaJIT check - 2.0.0 required (technically 2.0.0_beta11) + if jit and jit.version_num and jit.version_num >= 20000 then + return true + end + + return false +end + +if not check_version() then + error("Unsupported Lua version!\nSorry, crush requires Lua 5.2 or LuaJIT 2.0.0.") +end + -- System specific functions -- -- Portions of this code are based on work from the LuaRocks project.