@@ -41,42 +41,36 @@ abstract class FindPlugsTask : DefaultTask() {
41
41
when (change.changeType) {
42
42
ChangeType .REMOVED -> {
43
43
// Remove old discovered data for this file
44
- removeOldMetadata(change.file )
44
+ removeOldMetadata(change)
45
45
}
46
46
ChangeType .ADDED ,
47
47
ChangeType .MODIFIED -> {
48
- parseAndWriteMetadata(parser, change.file)
48
+ parseAndWriteMetadata(parser, change, change .file)
49
49
}
50
50
}
51
51
}
52
52
}
53
53
54
- private fun parseAndWriteMetadata (parser : PlugParser , classFile : File ) {
54
+ private fun parseAndWriteMetadata (parser : PlugParser , change : FileChange , classFile : File ) {
55
55
val plugToSocket = parser.parse(classFile)
56
56
if (plugToSocket != null ) {
57
57
// For example: write a single line containing the discovered plug FQN
58
- val discoveredFile = discoveredPlugsDir.file(classFile.nameWithoutExtension).get().asFile
59
- if (discoveredFile.exists()) {
60
- val existing = discoveredFile.readText().split(" |" )
61
- check(existing[0 ] == plugToSocket.first) {
62
- " You need to rename one of these plugs because they have the same classfile name: ${existing[0 ]} and $plugToSocket "
63
- }
64
- } else {
65
- discoveredFile.parentFile.mkdirs()
66
- }
58
+ val discoveredFile = discoveredPlugsDir.file(normalizePath(change)).get().asFile
67
59
discoveredFile.writeText(plugToSocket.let { " ${it.first} |${it.second} " })
68
60
} else {
69
61
// If previously discovered, remove it
70
- removeOldMetadata(classFile )
62
+ removeOldMetadata(change )
71
63
}
72
64
}
73
65
74
- private fun removeOldMetadata (classFile : File ) {
66
+ private fun removeOldMetadata (change : FileChange ) {
75
67
// Remove any discovered file for the old .class
76
- val possibleName = classFile.nameWithoutExtension
77
- val discoveredFile = discoveredPlugsDir.file(possibleName).get().asFile
68
+ val discoveredFile = discoveredPlugsDir.file(normalizePath(change)).get().asFile
78
69
if (discoveredFile.exists()) {
79
70
discoveredFile.delete()
80
71
}
81
72
}
73
+
74
+ private fun normalizePath (change : FileChange ) =
75
+ change.normalizedPath.removeSuffix(" .class" ).replace(" /" , " _" )
82
76
}
0 commit comments