apply plugin: 'java'
apply plugin: 'application'

mainClassName= 'de.fabianonline.telegram_backup.CommandLineRunnerKt'

repositories {
	mavenCentral()
	maven { 
		url "https://jitpack.io"
	}
	jcenter()
}

buildscript {
	ext.kotlin_version = '1.2.0'
	
	repositories {
		mavenCentral()
	}
	
	dependencies {
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
	}
}

apply plugin: 'kotlin'

compileKotlin {
	kotlinOptions.apiVersion = "1.0"
}
		

dependencies {
	compile('com.github.badoualy:kotlogram:666a81ef9d6707f117a3fecc2d21c91d51c7d075') {
		exclude module: 'slf4j-simple'
	}
	compile 'org.xerial:sqlite-jdbc:3.16.1'
	compile 'com.github.spullara.mustache.java:compiler:0.9.5'
	compile 'org.slf4j:slf4j-api:1.7.21'
	compile 'ch.qos.logback:logback-classic:1.1.7'
	compile 'com.google.code.gson:gson:2.8.0'
	compile 'com.github.salomonbrys.kotson:kotson:2.5.0'
	compile 'com.github.kittinunf.fuel:fuel:1.12.0'
	
	testCompile 'junit:junit:4.12'
}

run {
	standardInput = System.in
}

def getVersionName= { ->
	def stdout = new ByteArrayOutputStream()
	exec {
		commandLine 'git', 'describe', '--tags', '--dirty'
		standardOutput = stdout
	}
	def version = stdout.toString().trim()
	logger.lifecycle("Version $version")
	return version
}

ant.propertyfile(file: "$project.rootDir/build/resources/main/build.properties") {
	entry(key: "version", value: getVersionName())
}

jar {
	manifest {
		attributes "Main-Class": "$mainClassName"
	}
	
	from {
		configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
	}
	
	includes [
		"*.mustache"
	]
}
