40 lines
2.1 KiB
JavaScript
40 lines
2.1 KiB
JavaScript
#!/usr/bin/djs
|
|
if((!fs.chdir(fs.dirname(fs.realpath(sys.script))+"/..")) || (!fs.isdir(".git"))) throw new Error("Failed to switch to mod source directory.");
|
|
|
|
const uncommitted_changes = sys.shell("git status -s").trim();
|
|
|
|
const gittags = sys.shell('git log -1 --format="%D"')
|
|
.replace(/[\s]/g,"").split(",")
|
|
.filter(function(s){ return s.indexOf("tag:")==0;})
|
|
.map(function(s){ return s.replace(/^tag:/,"");});
|
|
|
|
const version_engineersdecor = fs.readfile("gradle.properties", function(line){
|
|
if(line.trim().indexOf("version_engineersdecor")!=0) return false;
|
|
return line.replace(/^.*?=/,"").trim()
|
|
}).trim();
|
|
|
|
const git_remote = sys.shell("git remote -v").trim();
|
|
const git_branch = sys.shell("git rev-parse --abbrev-ref HEAD").trim();
|
|
const git_diff = sys.shell("git diff").trim();
|
|
var fails = [];
|
|
|
|
if(version_engineersdecor=="") fails.push("Could not determine 'version_engineersdecor' from gradle properties.");
|
|
if(!gittags.length) fails.push("Version not tagged.");
|
|
if(!gittags.filter(function(s){return s.indexOf(version_engineersdecor.replace(/[-]/g,""))>=0}).length) fails.push("No tag version not found matching the gradle properties version.");
|
|
if(git_remote.replace(/[\s]/g,"").indexOf("git@github.com:stfwi/engineers-decor.git(push)") < 0) fails.push("Not the reference repository.");
|
|
if((git_branch != "develop") && (git_branch != "master")) {
|
|
fails.push("No valid branch for dist. (branch:'"+git_branch+"')");
|
|
} else if((git_branch == "develop") && (version_engineersdecor.replace(/[^\w\.-]/g,"")=="")) {
|
|
fails.push("Cannot make release dist on develop branch.");
|
|
} else if((git_branch == "master") && (version_engineersdecor.replace(/[^\w\.-]/g,"")!="")) {
|
|
fails.push("Cannot make beta dist on master branch.");
|
|
}
|
|
if(git_diff !== "") fails.push("Not everything committed to the GIT repository.");
|
|
if((!fs.isfile("signing.jks")) || (!fs.isfile("signing.properties"))) fails.push("Jar signing files missing.");
|
|
|
|
if(fails.length>0) {
|
|
for(var i in fails) fails[i] = " - " + fails[i];
|
|
alert("Dist check failed");
|
|
alert(fails.join("\n")+"\n");
|
|
exit(1);
|
|
}
|