Files
wagic/projects/mtg/updateAndroidManifest.groovy

50 lines
1.6 KiB
Groovy

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
String android_manifest_filename=args[0];
File fXmlFile = new File(android_manifest_filename);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
Element rootNode=doc.getDocumentElement();
/*
package="net.wagic.app"
android:versionCode="184"
android:versionName="0.18.4"
*/
def props = new Properties();
new File("build.number.properties").withInputStream {
stream -> props.load(stream)
}
// accessing the property from Properties object using Groovy's map notation
println "capacity.created=" + props["build.major"]
def config = new ConfigSlurper().parse(props)
// accessing the property from ConfigSlurper object using GPath expression
String major_version=props["build.major"];
String minor_version=props["build.minor"];
String point_version=props["build.point"];
DOMSource source = new DOMSource(doc);
rootNode.setAttribute("android:versionName", major_version + "." + minor_version + "." + point_version);
rootNode.setAttribute("android:versionCode", major_version + minor_version + point_version);
File outputFile = new File(android_manifest_filename );
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty("indent", "yes");
StreamResult result = new StreamResult(new FileOutputStream(outputFile) );
transformer.transform(source, result);