import versioning.GitVersioner
import versioning.RegamedllVersionInfo
import org.joda.time.DateTime

apply plugin: 'maven-publish'
apply from: 'shared.gradle'
group = 'regamedll'

apply plugin: 'idea'

idea {
	project {
		languageLevel = 'JDK_1_7'
	}
}

def gitInfo = GitVersioner.versionForDir(project.rootDir)
RegamedllVersionInfo versionInfo
if (gitInfo && gitInfo.tag && gitInfo.tag[0] == 'v') {
	def m = gitInfo.tag =~ /^v(\d+)\.(\d+)(\.(\d+))?$/
	if (!m.find()) {
		throw new RuntimeException("Invalid git version tag name ${gitInfo.tag}")
	}

	versionInfo = new RegamedllVersionInfo(
		majorVersion: m.group(1) as int,
		minorVersion: m.group(2) as int,
		maintenanceVersion: m.group(4) ? (m.group(4) as int) : null,
		localChanges: gitInfo.localChanges,
		commitDate: gitInfo.commitDate,
		commitSHA: gitInfo.commitSHA,
		commitURL: gitInfo.commitURL
	)
} else {

	if (!gitInfo) {
		System.err.println "WARNING! couldn't get gitInfo";
	}

	versionInfo = new RegamedllVersionInfo(
		majorVersion: project.majorVersion as int,
		minorVersion: project.minorVersion as int,
		maintenanceVersion: project.maintenanceVersion as int,
		suffix: 'dev',
		localChanges: gitInfo ? gitInfo.localChanges : true,
		commitDate: gitInfo ? gitInfo.commitDate : new DateTime(),
		commitSHA: gitInfo ? gitInfo.commitSHA : "",
		commitURL: gitInfo ? gitInfo.commitURL : "",
		commitCount: gitInfo ? (gitInfo.commitCount as int) : null
	)
}

project.ext.regamedllVersionInfo = versionInfo
project.version = versionInfo.asMavenVersion()

apply from: 'publish.gradle'

task wrapper(type: Wrapper) {
	gradleVersion = '2.4'
}