50 lines
1.6 KiB
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);
|