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.