local releases = { release = {dir = 'Release', exe = 'micromacro.exe', tag = 'x86'}, release_x64 = {dir = 'Release_x64', exe = 'x64\\micromacro.exe', tag = 'x64'}, }; for i,v in pairs(releases) do local releasedir = v['dir']; local exe = v['exe']; local tag = v['tag']; -- Remove logs dir os.execute("rmdir /s /q " .. releasedir .. "\\micromacro\\logs"); -- Copy source os.execute("Copy /Y src\\ " .. releasedir .. "\\micromacro\\src"); os.execute("Copy src\\" .. exe .. ".manifest " .. releasedir .. "\\micromacro\\"); os.execute("Copy micromacro.cbp " .. releasedir .. "\\micromacro\\micromacro.cbp"); os.execute("Copy license.txt " .. releasedir .. "\\micromacro\\"); -- Copy executable, configs, etc. os.execute("Copy " .. exe .. " " .. releasedir .. "\\micromacro\\"); os.execute("Copy config.default.lua " .. releasedir .. "\\micromacro\\config.default.lua"); -- Copy libs os.execute("xcopy lib " .. releasedir .. "\\micromacro\\lib\ /E /Y"); -- Look up version info local filename = "src\\version.h"; local pattern_major = "MAJOR%s*=%s*(%d+);"; local pattern_minor = "MINOR%s*=%s*(%d+);"; local pattern_build = "BUILD%s*=%s*(%d+);"; local major, minor, build; local file = io.open(filename, 'r'); if( not file ) then error("Could not open file \'" .. filename .. "\'"); end local line, found; for line in file:lines() do found = string.match(line, pattern_major); if( found ) then major = found; end; found = string.match(line, pattern_minor); if( found ) then minor = found; end; found = string.match(line, pattern_build); if( found ) then build = found; end; end local verstr = string.format('%d.%02d.%02d', major, minor, build); print("Version: ", verstr); -- Package it local outputFilename = "micromacro." ..verstr .. "_" .. tag .. ".zip"; os.execute("del " .. releasedir .. "\\*.zip"--[[outputFilename]]); os.execute("cd " .. releasedir .. " & 7z a -tzip " .. outputFilename .. " micromacro"); end