blob: 55d96c056d91a01baacc52f13dcd8d0c6b07b2fe (
plain)
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
|
plugins {
id 'groovy'
id 'maven-publish'
}
dependencies {
implementation gradleApi()
implementation localGroovy()
}
group = 'org.thejk'
version = '0.3.14'
publishing {
repositories {
maven {
url = layout.projectDirectory.dir('repo')
}
}
publications {
maven(MavenPublication) {
artifactId = 'flycheck-android-experimental'
from components.java
}
}
}
class PackageTask extends DefaultTask {
@Input
String packageName
@InputFile
File getLispScript() {
return project.file('flycheck-android-experimental.el')
}
@InputFile
File getPackageScript() {
return project.file('flycheck-android-experimental-pkg.el')
}
@InputFile
File getJavaPythonScript() {
return project.file('bin/flycheck-android-java.py')
}
@InputFile
File getKotlinPythonScript() {
return project.file('bin/flycheck-android-kotlin.py')
}
@OutputFile
File getOutput() {
return new File(project.buildDir, "${packageName}.tar")
}
@TaskAction
def action() {
def intermediate = new File(project.buildDir, 'package/intermediate')
def target = new File(intermediate, packageName)
def bin = new File(target, 'bin')
bin.mkdirs()
project.copy {
from(lispScript, packageScript)
into target
}
project.copy {
from(javaPythonScript, kotlinPythonScript)
into bin
}
project.exec {
commandLine 'tar', '-c', '-f', output, '-C', intermediate, packageName
}
}
}
task packageLisp(type: PackageTask) {
packageName 'flycheck-android-experimental-0.3.14'
}
|