From a7234b9c5374ee34387c2010ae48c834f4242987 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 1 Feb 2016 10:31:12 -0500 Subject: [PATCH] Add a basic script to check for release sanity --- scripts/devel/check-release.lua | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 scripts/devel/check-release.lua diff --git a/scripts/devel/check-release.lua b/scripts/devel/check-release.lua new file mode 100644 index 000000000..23f424a28 --- /dev/null +++ b/scripts/devel/check-release.lua @@ -0,0 +1,59 @@ +-- basic check for release readiness +--[[=begin +devel/check-release +=================== +Basic checks for release readiness +=end]] + +ok = true +function err(s) + dfhack.printerr(s) + ok = false +end +function warn(s) + dfhack.color(COLOR_YELLOW) + dfhack.print(s .. '\n') + dfhack.color(nil) +end + +dfhack_ver = dfhack.getDFHackVersion() +git_desc = dfhack.getGitDescription() +git_commit = dfhack.getGitCommit() +if not dfhack.isRelease() then + err('This build is not tagged as a release') + print[[ +This is probably due to missing git tags. +Try running `git fetch origin --tags` in the DFHack source tree. +]] +end + +expected_git_desc = ('%s-0-g%s'):format(dfhack_ver, git_commit:sub(1, 7)) +if git_desc:sub(1, #expected_git_desc) ~= expected_git_desc then + err(([[Bad git description: +Expected %s, got %s]]):format(expected_git_desc, git_desc)) + print[[ +Ensure that the DFHack source tree is up-to-date (`git pull`) and CMake is +installing DFHack to this DF folder. +]] +end + +if not dfhack.gitXmlMatch() then + err('library/xml submodule commit does not match tracked commit\n' .. + ('Expected %s, got %s'):format( + dfhack.getGitXmlCommit():sub(1, 7), + dfhack.getGitXmlExpectedCommit():sub(1, 7) + )) + print('Try running `git submodule update` in the DFHack source tree.') +end + +if dfhack.isPrerelease() then + warn('This build is marked as a prerelease.') + print('If this is not intentional, be sure your DFHack tree is up-to-date\n' .. + '(`git pull`) and try again.') +end + +if not ok then + err('This build is not release-ready!') +else + print('Release checks succeeded') +end