Skip to content

Commit 55e3454

Browse files
committed
path fix
1 parent 42e6758 commit 55e3454

File tree

3 files changed

+49
-32
lines changed

3 files changed

+49
-32
lines changed

src/main/kotlin/components/Extensions.kt

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package components
22

3+
import StringCare
34
import StringCare.Configuration
45
import StringCare.Extension
56
import groovy.json.StringEscapeUtils
@@ -33,6 +34,16 @@ fun String.normalize(): String {
3334
return com.joinToString(" ")
3435
}
3536

37+
fun String.normalizePath(): String {
38+
val unixPath = this.replace("\\", "/")
39+
.replace("\\\\", "/")
40+
.replace("//", "/")
41+
return when (getOs()) {
42+
Os.OSX -> unixPath
43+
Os.WINDOWS -> unixPath.replace("/", "\\")
44+
}
45+
}
46+
3647
fun String.escape(): String = Regex.escape(this)
3748
fun String.unescape(): String = StringEscapeUtils.unescapeJava(this)
3849
fun String.removeNewLines(): String = this.replace("\n", "")
@@ -135,13 +146,16 @@ fun Process.outputString(): String {
135146
fun defaultConfig(): Configuration {
136147
return Configuration("app").apply {
137148
stringFiles.add("strings.xml")
138-
srcFolders.add("src${File.separator}main")
149+
srcFolders.add("src/main")
139150
}
140151
}
141152

142153
fun ResourceFile.backup(): File {
143-
val cleanPath = "${StringCare.tempFolder}${File.separator}${this.module}${File.separator}${this.sourceFolder}${this.file.absolutePath.split(this.sourceFolder)[1]}"
144-
.replace("${File.separator}${File.separator}", File.separator)
154+
val cleanPath =
155+
"${StringCare.tempFolder}${File.separator}${this.module}${File.separator}${this.sourceFolder}${this.file.absolutePath.split(
156+
this.sourceFolder
157+
)[1]}"
158+
.replace("${File.separator}${File.separator}", File.separator)
145159

146160
val backupFile = File(cleanPath)
147161
this.file.copyTo(backupFile, true)
@@ -294,3 +308,17 @@ fun Node.getType(): StringType {
294308
else -> StringType.TEXT
295309
}
296310
}
311+
312+
fun Configuration.normalize(): Configuration {
313+
val stringFiles = mutableListOf<String>()
314+
val sourceFolders = mutableListOf<String>()
315+
this.stringFiles.forEach { file ->
316+
stringFiles.add(file.normalizePath())
317+
}
318+
this.srcFolders.forEach { folder ->
319+
sourceFolders.add(folder.normalizePath())
320+
}
321+
this.stringFiles = stringFiles
322+
this.srcFolders = sourceFolders
323+
return this
324+
}

src/main/kotlin/components/XParser.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import java.io.File
88

99
fun locateFiles(projectPath: String, configuration: Configuration): List<ResourceFile> = File(projectPath).walkTopDown()
1010
.filterIndexed { _, file ->
11-
file.validForConfiguration(configuration)
11+
file.validForConfiguration(configuration.normalize())
1212
}.map {
13-
it.resourceFile(configuration)!!
13+
it.resourceFile(configuration.normalize())!!
1414
}.toList()
1515

1616
fun backupFiles(projectPath: String, configuration: Configuration): List<ResourceFile> {
17-
val files = locateFiles(projectPath, configuration)
17+
val files = locateFiles(projectPath, configuration.normalize())
1818
files.forEach { resource ->
1919
resource.backup()
2020
}

src/test/kotlin/SCTest.kt

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ class SCTest {
99

1010
// private val logger by logger()
1111

12+
private val configuration = defaultConfig().apply {
13+
stringFiles.add("strings_extra.xml")
14+
srcFolders.add("src/other_source")
15+
}
16+
1217
@Before
1318
fun setup() {
1419
librarySetupTask.runCommand()
@@ -41,7 +46,7 @@ class SCTest {
4146
fun `04 - (PLUGIN) locate string files for default configuration`() {
4247
val temp = tempPath()
4348
prepareTask(temp).runCommand { _, _ ->
44-
assert(locateFiles("$temp${File.separator}$testProjectName", defaultConfig()).isNotEmpty())
49+
assert(locateFiles("$temp${File.separator}$testProjectName", configuration).isNotEmpty())
4550
}
4651
StringCare.resetFolder()
4752
}
@@ -50,7 +55,7 @@ class SCTest {
5055
fun `05 - (PLUGIN) backup string files`() {
5156
val temp = tempPath()
5257
prepareTask(temp).runCommand { _, _ ->
53-
assert(backupFiles("$temp${File.separator}$testProjectName", defaultConfig()).isNotEmpty())
58+
assert(backupFiles("$temp${File.separator}$testProjectName", configuration).isNotEmpty())
5459
}
5560
StringCare.resetFolder()
5661
}
@@ -63,10 +68,7 @@ class SCTest {
6368
restoreFiles("$temp${File.separator}$testProjectName", defaultMainModule).isEmpty()
6469
)
6570
assert(
66-
backupFiles("$temp${File.separator}$testProjectName", defaultConfig().apply {
67-
stringFiles.add("strings_extra.xml")
68-
srcFolders.add("src${File.separator}other_source")
69-
}).isNotEmpty()
71+
backupFiles("$temp${File.separator}$testProjectName", configuration).isNotEmpty()
7072
)
7173
assert(
7274
restoreFiles("$temp${File.separator}$testProjectName", defaultMainModule).isNotEmpty()
@@ -78,7 +80,7 @@ class SCTest {
7880
fun `07 - (PLUGIN) xml parsing`() {
7981
val temp = tempPath()
8082
prepareTask(temp).runCommand { _, _ ->
81-
val files = locateFiles("$temp${File.separator}$testProjectName", defaultConfig())
83+
val files = locateFiles("$temp${File.separator}$testProjectName", configuration)
8284
files.forEach {
8385
assert(parseXML(it.file).isNotEmpty())
8486
}
@@ -91,7 +93,7 @@ class SCTest {
9193
signingReportTask(temp).runCommand { _, report ->
9294
val key = report.extractFingerprint()
9395
assert(key.isNotEmpty())
94-
val files = locateFiles("$temp${File.separator}$testProjectName", defaultConfig())
96+
val files = locateFiles("$temp${File.separator}$testProjectName", configuration)
9597
files.forEach { file ->
9698
val entities = parseXML(file.file)
9799
entities.forEach { entity ->
@@ -112,10 +114,7 @@ class SCTest {
112114
signingReportTask(temp).runCommand { _, report ->
113115
val key = report.extractFingerprint()
114116
assert(key.isNotEmpty())
115-
val files = locateFiles("$temp${File.separator}$testProjectName", defaultConfig().apply {
116-
stringFiles.add("strings_extra.xml")
117-
srcFolders.add("src${File.separator}other_source")
118-
})
117+
val files = locateFiles("$temp${File.separator}$testProjectName", configuration)
119118
files.forEach { file ->
120119
val entities = parseXML(file.file)
121120
entities.forEach { entity ->
@@ -148,13 +147,13 @@ class SCTest {
148147
fun `10 - (PLUGIN) obfuscate xml`() {
149148
val temp = tempPath()
150149
signingReportTask(temp).runCommand { _, report ->
151-
val files = locateFiles("$temp${File.separator}$testProjectName", defaultConfig())
150+
val files = locateFiles("$temp${File.separator}$testProjectName", configuration)
152151
files.forEach { file ->
153152
val entities = parseXML(file.file)
154153
assert(entities.isNotEmpty())
155154
modifyXML(file.file, "$temp${File.separator}$mainModuleTest", report.extractFingerprint(), true)
156155
}
157-
val filesObfuscated = locateFiles("$temp${File.separator}$testProjectName", defaultConfig())
156+
val filesObfuscated = locateFiles("$temp${File.separator}$testProjectName", configuration)
158157
filesObfuscated.forEach { file ->
159158
val entities = parseXML(file.file)
160159
assert(entities.isEmpty())
@@ -166,10 +165,6 @@ class SCTest {
166165
fun `11 - (PLUGIN) obfuscate, restore and compare xml values with originals`() {
167166
val temp = tempPath()
168167
signingReportTask(temp).runCommand { _, report ->
169-
val configuration = defaultConfig().apply {
170-
stringFiles.add("strings_extra.xml")
171-
srcFolders.add("src${File.separator}other_source")
172-
}
173168
val files = backupFiles("$temp${File.separator}$testProjectName", configuration)
174169
assert(files.isNotEmpty())
175170
files.forEach { file ->
@@ -214,10 +209,7 @@ class SCTest {
214209
fun `12 - (ANDROID COMPILATION) obfuscate xml and build (not real workflow)`() {
215210
val temp = tempPath()
216211
signingReportTask(temp).runCommand { _, report ->
217-
val files = locateFiles("$temp${File.separator}$testProjectName", defaultConfig().apply {
218-
stringFiles.add("strings_extra.xml")
219-
srcFolders.add("src${File.separator}other_source")
220-
})
212+
val files = locateFiles("$temp${File.separator}$testProjectName", configuration)
221213
files.forEach { file ->
222214
val entities = parseXML(file.file)
223215
assert(entities.isNotEmpty())
@@ -230,10 +222,7 @@ class SCTest {
230222
}
231223
val filesObfuscated = locateFiles(
232224
"$temp${File.separator}$testProjectName",
233-
defaultConfig().apply {
234-
stringFiles.add("strings_extra.xml")
235-
srcFolders.add("src${File.separator}other_source")
236-
}
225+
configuration
237226
)
238227
filesObfuscated.forEach { file ->
239228
val entities = parseXML(file.file)

0 commit comments

Comments
 (0)