-- advtrains to git exporter require "lfs" script_path = arg[0]:match("(.*/)") minetest = {} -- hack around serializelib minetest.get_modpath = function () return script_path.."serialize_lib" end minetest.log = function() end minetest.get_current_modname = function() end dofile(script_path.."serialize_lib/init.lua") -- load serialize lib function usage() print("Usage: gitexporter.lua worldpath outpath") end if #arg < 2 then print("too few arguments!") usage() return end inpath = arg[1] base_path = arg[2] function ensure_dir(path) if not (lfs.attributes(path, "mode") == "directory") then lfs.mkdir(path) end end function env_path(env) return base_path.."/"..env end function node_file(env, pos) base = env_path(env).."/nodes" ensure_dir(base) return base.."/"..pos..".lua" end v4path = inpath.."/advtrains_atlatc.ls" tb = {} if lfs.attributes(v4path) then tb = serialize_lib.read_table_from_file(v4path) else tb = dofile(inpath.."/advtrains_luaautomation") end ensure_dir(base_path) for env, data in pairs(tb.envs) do pth = env_path(env) ensure_dir(pth) f = io.open(pth.."/init_code.lua", "w") f:write(data.init_code) end for k, j in pairs(tb.active.nodes) do f = io.open(node_file(j.env,k), "w") if f then f:write(j.code or "") end end