Skip to content

Instantly share code, notes, and snippets.

@scruffyfox
Created January 9, 2014 10:50
Show Gist options
  • Save scruffyfox/8332390 to your computer and use it in GitHub Desktop.
Save scruffyfox/8332390 to your computer and use it in GitHub Desktop.
import java.util.regex.Pattern
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['res']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
productFlavors {
google {
//buildConfigField "boolean", "IS_GOOGLE_PLAY", "true"
//buildConfigField "boolean", "IS_AMAZON", "true"
buildConfig "private final static boolean IS_GOOGLE_PLAY = true;", \
"private final static boolean IS_AMAZON = false;"
}
amazon {
//buildConfigField "boolean", "IS_GOOGLE_PLAY", "true"
//buildConfigField "boolean", "IS_AMAZON", "true"
buildConfig "private final static boolean IS_GOOGLE_PLAY = false;", \
"private final static boolean IS_AMAZON = true;"
}
}
signingConfigs {
release {
def taskName = project.getGradle().startParameter.taskNames.get(0);
def console = System.console();
if (console != null && taskName.contains("Release"))
{
storeFile file(console.readLine("\nEnter keystore path: ").trim())
storePassword console.readLine("Enter keystore password: ").trim()
keyAlias console.readLine("Enter key alias: ").trim()
keyPassword console.readLine("Enter key password: ").trim()
}
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
dependencies {
compile project(':Libraries:Storm-Library')
compile project(':Libraries:Storm-Library:Modules:StormViewBuilder')
compile project(':Libraries:Storm-Library:Modules:StormCrashReporter')
compile project(':Libraries:Storm-Library:Modules:StormStats')
compile project(':Libraries:Storm-Library:Modules:StormLanguage')
compile project(':Libraries:Storm-Library:Modules:StormPushNotifications')
}
task cleanXML(type: Exec) {
commandLine './whitespace.rb'
}
task getBundle(type: Exec) {
commandLine './get-bundle.py'
ignoreExitValue = true
}
task('increaseVersionCode') << {
def taskName = project.getGradle().startParameter.taskNames.get(0);
def f = new File("buildnumber")
f.createNewFile()
def buildNumberFile = file(f)
int versionCode = 0
if (buildNumberFile.exists())
{
def versionText = buildNumberFile.getText()
versionCode = Integer.parseInt(versionText) + 1
}
if (taskName.contains("Debug"))
{
buildNumberFile.write(String.valueOf(versionCode))
}
else if (taskName.contains("Release"))
{
def manifestFile = file("AndroidManifest.xml")
def pattern = Pattern.compile("versionCode=\"(\\d+)\"")
def manifestText = manifestFile.getText()
def matcher = pattern.matcher(manifestText)
matcher.find()
def oldVersionCode = Integer.parseInt(matcher.group(1))
def manifestContent = matcher.replaceAll("versionCode=\"" + (oldVersionCode + versionCode) + "\"")
manifestFile.write(manifestContent)
buildNumberFile.write("0")
}
}
tasks.preBuild.dependsOn cleanXML
tasks.preBuild.dependsOn increaseVersionCode
tasks.whenTaskAdded { task ->
def taskName = project.getGradle().startParameter.taskNames.get(0);
if (taskName.contains("Release"))
{
task.dependsOn getBundle
}
}
#!/usr/bin/ruby
# Based on the script from http://www.splinter.com.au/ruby-script-to-increment-a-build-number/
@path = File.dirname(__FILE__)
res = "/res/"
def strip(filename)
# Read it
file_str = ''
if File.exists?(filename)
file_str = File.open(filename, 'r') {|file| file.read }
end
file_str = file_str.gsub(/ /, "\t")
file_str = file_str.gsub(/\"^[ \t]+|[ \t]+$/, "")
# Write
File.open(filename, 'w') {|file| file.write(file_str) }
puts "Removing trailing whitespace and converting spaces to tabs in #{filename}"
end
Dir.entries(@path + res).each {|entry|
if (!File.basename(@path + res + entry).start_with?("."))
Dir.entries(@path + res + entry).each {|file|
if (!File.basename(@path + res + entry + "/" + file).start_with?(".") and File.basename(@path + res + entry + "/" + file).end_with?("xml"))
strip(@path + res + entry + "/" + file)
end
}
end
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment