-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
68 lines (57 loc) · 1.75 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
import java.nio.charset.StandardCharsets
apply plugin: "idea"
idea {
module {
excludeDirs += file('.idea')
excludeDirs += file('gradle')
}
}
subprojects {
group 'com.perihelios.experimental'
version '0.0.1'
apply plugin: 'java'
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
compile "org.codehaus.groovy:groovy-all:2.4.7"
testCompile "junit:junit:4.12"
testCompile "org.spockframework:spock-core:1.1-groovy-2.4-rc-3"
testCompile "cglib:cglib-nodep:3.2.5"
}
test.doLast {
List<String> commentBlock = '''
|/\\*
| Copyright 2017, Perihelios LLC
|
| Licensed under the Apache License, Version 2\\.0 \\(the "License"\\);
| you may not use this file except in compliance with the License\\.
| You may obtain a copy of the License at
|
| http://www\\.apache\\.org/licenses/LICENSE-2\\.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\\.
| See the License for the specific language governing permissions and
| limitations under the License\\.
|\\*/
'''.stripMargin("|").trim().split(/\r\n|\n/)
sourceSets*.allSource*.files.flatten().findAll { it.name =~ /\.(groovy|java)$/ }.each { File source ->
source.withReader(StandardCharsets.UTF_8.name()) { reader ->
def commentLines = commentBlock.iterator()
while (commentLines) {
String expectedLine = commentLines.next()
String actualLine = reader.readLine()
if (!(actualLine ==~ expectedLine)) {
throw new ResourceException(
source.toURI(),
"Source file $source does not start with appropriate copyright block"
)
}
}
}
}
}
}