build.gradle 8.41 KB
apply plugin: 'com.android.application'
apply plugin: 'com.antfortune.freeline'
//apply plugin: 'me.tatarka.retrolambda'

def releaseTime = {
    return new Date().format("MM-dd~HH.mm.ss", TimeZone.getTimeZone("GMT+8:00"))
}

def isWindows = {
    return System.getProperty('os.name').toLowerCase().contains('windows')
}

ext {
    APP_VERSION_CODE = 6;
    APP_VERSION_NAME = "v2.3-0608";
}

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    lintOptions {
        abortOnError false
    }

    freeline {
        hack true
        productFlavor 'QinNing'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/maven/com.belerweb/pinyin4j/pom.xml'
        exclude 'META-INF/maven/com.belerweb/pinyin4j/pom.properties'
        return false
    }

    defaultConfig {
        minSdkVersion ANDROID_MIN_SDK_VERSION as int
        targetSdkVersion ANDROID_TARGET_SDK_VERSION as int
        versionCode APP_VERSION_CODE
        versionName APP_VERSION_NAME

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

//        jackOptions {
//            enabled true
//        }
    }

    signingConfigs {
        myConfig {
            storeFile file('./debug.keystore')
            storePassword "android"
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.myConfig
            buildConfigField 'String', 'DEFAULT_IP', "\"192.168.31.202\""
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            buildConfigField 'String', 'MACHINE_TYPE', "\"gimi\""
            buildConfigField 'boolean', 'USE_GLIDE', "false"
        }
        debug {
            buildConfigField 'String', 'DEFAULT_IP', "\"192.168.200.241\""
            buildConfigField 'String', 'MACHINE_TYPE', "\"gimi\""
            buildConfigField 'boolean', 'USE_GLIDE', "false"
            signingConfig signingConfigs.myConfig
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            jniDebuggable false
        }
    }
    productFlavors {
    }

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def oldFile = output.outputFile
            println "*****" + oldFile + "*****"

            if (variant.buildType.name.equals('release')) {
                def fileName = output.outputFile.name.replace(output.outputFile.name,
                        /*variant.productFlavors[0].name*/ "方糖" + "-v${variant.versionCode}-${releaseTime()}.apk")
                output.outputFile = new File(output.outputFile.parent, fileName)
                // release to test folder
                println fileName
            }
        }
    }
    return false
}

dependencies {
    compile files('libs/decoder.jar')
    compile files('libs/CinemaLibs-170426.jar')
    compile files('libs/glide-3.7.0.jar')
    compile files('libs/greenbluetoothlelib.jar')

    compile project(':uil')
    compile project(':volley')
    compile project(':pinying')
    compile project(':debug-db')
    compile project(':BluetoothLightLib')
    compile project(':switchcontrollib')

    compile group: 'com.squareup.okhttp', name: 'okhttp', version: '2.7.5'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
    compile group: 'com.google.zxing', name: 'core', version: '3.3.0'
    compile group: 'com.nineoldandroids', name: 'library', version: '2.4.0'
    compile group: 'com.squareup.retrofit2', name: 'retrofit', version: '2.0.2'
    compile group: 'com.squareup.retrofit2', name: 'converter-gson', version: '2.0.2'
    compile 'com.umeng.analytics:analytics:latest.integration'
    compile 'org.greenrobot:eventbus:3.0.0'
}

def getPwd(modifyPwd) {
    return modifyPwd.replaceAll(".*:", "").trim()
}

def getName(modifyPwd) {
    return new File(modifyPwd).getName().replace(".java", "");
}

task('buildRelease') << {

}
task releaseToTesting(type: Copy) {
    from 'build/outputs/apk'
//    into 'E:/py'
    if (isWindows())
        into '//192.168.200.241/root/apks'
    else
        into '/Volumes/root/apks'
    include '*.apk'
    exclude { details ->
        details.file.name.contains('debug') ||
                details.file.name.contains('release')
    }
}
build.dependsOn clean
releaseToTesting {}.dependsOn build
build.shouldRunAfter clean
releaseToTesting {}.shouldRunAfter build

task tests(type: Copy) {
    from 'build/outputs/apk'
    if (isWindows())
        into '//192.168.200.241/root/apks'
    else
        into '/Volumes/root/apks'
    include '*.apk'
    exclude { details ->
        details.file.name.contains('debug') ||
                details.file.name.contains('release')
    }
}

task getType() {
    def pwd1 = new File('build.gradle').getAbsolutePath()
    def windows = isWindows();
    def pwd = System.getProperty('os.name').toLowerCase().contains('windows') ? "windows" : "linux"
    def pwd2 = System.getProperty('os.name').toLowerCase().contains('windows')
    println pwd + " fuck " + windows + " seek " + pwd1 + " seek " + pwd2
}

task('gitCommit') << {
    def debug = false;
    def pull = "git pull"
    pull.execute()

    def cmdStatus = "git status ."
    println "*****************execute $cmdStatus start*******************"
    def var = cmdStatus.execute()/*.text.trim()*/
    println "*****************execute $cmdStatus start*******************"
//    println var.text
    def outputStream = new StringBuffer();
    var.waitForProcessOutput(outputStream, System.err)
    def a = 0;
    def commitMsg = "";
    def commitDelMsg = "删除了";
    def commitModMsg = "修改了";
    def commitAddMsg = "添加了";
    outputStream.toString().eachLine {
        a++
        if (it.contains("build.gradle")) {
            println "pass build.gradle $it"
            return
        }
        if (it.contains("deleted:")) {
            def pwd = getPwd(it);
            println "deleted pwd is :" + pwd
            commitDelMsg += getName(pwd) + " "
            if (!debug) {
                def rm = "git rm " + pwd
                def rmResult = rm.execute()
                def rmOutputStream = new StringBuffer()
                rmResult.waitForProcessOutput(rmOutputStream, System.err)
            }
            return
        }
        if (it.contains("modified:")) {
            def pwd = getPwd(it);
            println "modified pwd is :" + pwd
            commitModMsg += getName(pwd) + " "
            if (!debug) {
                def add = "git add " + pwd
                def addResult = add.execute()
                def addOutputStream = new StringBuffer()
                addResult.waitForProcessOutput(addOutputStream, System.err)
            }
            return
        }

        if (it.contains("src")) {
            def pwd = getPwd(it);
            println "untracked pwd is :" + pwd
            commitAddMsg += getName(pwd) + " "
            if (!debug) {
                def add = "git add " + pwd
                def addResult = add.execute()
                def addOutputStream = new StringBuffer()
                addResult.waitForProcessOutput(addOutputStream, System.err)
            }
        }
    }
    if (commitDelMsg != "删除了") {
        commitMsg += commitDelMsg + " "
    }
    if (commitModMsg != "修改了") {
        commitMsg += commitModMsg + " "
    }
    if (commitAddMsg != "添加了") {
        commitMsg += commitAddMsg + " "
    }

    println "######################commitMsg##########################"
    println "$commitMsg"
    println "######################commitMsg##########################"
    println "*****************execute $cmdStatus end*******************"

    if (!debug) {
        def commit = "git commit -m " + commitMsg
        def commitResult = commit.execute()
        def commitOutputStream = new StringBuffer();
        commitResult.waitForProcessOutput(commitOutputStream, System.err)
        def push = "git push"
        def putResult = push.execute()
        def pushOutputStream = new StringBuffer()
        putResult.waitForProcessOutput(pushOutputStream, System.err)
    }
}