This repository has been archived by the owner on Feb 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
107 lines (92 loc) · 2.93 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
buildscript {
repositories {
mavenCentral()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
apply plugin: 'forge'
version = "0.1"
group = "net.pktr.smartbackup"
targetCompatibility = "1.8"
sourceCompatibility = "1.8"
archivesBaseName = "SmartBackup"
/**
* Gets a string representing the revision of the source. This includes the branch we're on
* (or "DETACHED-" if not on a branch), the 7-character revision string, and "-modified" if there
* are uncommitted changes. If git isn't present or we can't get the revision string,
* "UNKNOWN" is returned.
* @return A string representing the source revision or "UNKNOWN"
*/
def String getSourceRevision() {
String versionString = ""
// If there is a nonzero return for git-version, assume git isn't present.
def gitCheck = "git --version".execute()
gitCheck.waitFor()
if (gitCheck.exitValue() != 0) {
return "UNKNOWN"
}
// Append a branch name (or DETACHED if in detached-HEAD state)
def branch = "git symbolic-ref --short -q HEAD".execute()
branch.waitFor()
// Assume nonzero is detached-HEAD. If there is no git repo, the revision command will catch it.
if (branch.exitValue() != 0) {
versionString += "DETACHED-"
} else {
versionString += branch.text.trim() + "-"
}
// This command gets the git revision in short-form (7 hex characters).
def revision = "git rev-parse --short HEAD".execute()
revision.waitFor()
if (revision.exitValue() != 0) {
return "UNKNOWN"
}
versionString += revision.text.trim()
// This command lists changes, one on each line. If there are no changes, the output is empty.
def modified = "git status --porcelain".execute()
modified.waitFor()
if (modified.exitValue() != 0) {
return "UNKNOWN"
}
if (modified.text.trim() != "") {
versionString += "-modified"
}
return versionString
}
minecraft {
version = "1.7.10-10.13.2.1291"
runDir = "minecraft"
replaceIn "net/pktr/smartbackup/SmartBackup.java"
replace '$VERSION$', project.version
replace '$SOURCE_REVISION$', getSourceRevision()
replace '$BUILD_TIMESTAMP$', new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'",
TimeZone.getTimeZone("UTC"))
}
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
processResources {
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// Copy mcmod.info from resources, replacing relevant variables
from(sourceSets.main.resources.srcDirs) {
include "mcmod.info"
expand "version": project.version, "mcversion": project.minecraft.version
}
// Copy resources other than mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude "mcmod.info"
}
from(projectDir) {
include "LICENSE", "README.md"
}
}