mirror of https://github.com/jenkinsci/jenkins.git
36 lines
1.5 KiB
Groovy
36 lines
1.5 KiB
Groovy
// Usage: groovy move-l10n.groovy hudson/model/OldClass/old-view jenkins/model/NewClass/new-view 'Some\ Translatable\ Text'
|
|
// (The new view may be given as '-' to simply delete the key.)
|
|
|
|
def oldview = args[0]
|
|
def newview = args[1]
|
|
def key = args[2]
|
|
|
|
def scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
|
|
def resDir = new File(scriptDir, 'src/main/resources')
|
|
|
|
def basename = new File(resDir, oldview).name
|
|
for (p in new File(resDir, oldview).parentFile.listFiles()) {
|
|
def n = p.name
|
|
if (n == "${basename}.properties" || n.startsWith("${basename}_") && n.endsWith(".properties")) {
|
|
def lines = p.readLines('ISO-8859-1')
|
|
// TODO does not handle multiline values correctly
|
|
def matches = lines.findAll({it.startsWith("${key}=")})
|
|
if (!matches.isEmpty()) {
|
|
lines.removeAll(matches)
|
|
p.withWriter('ISO-8859-1') {out ->
|
|
lines.each {line -> out.writeLine(line)}
|
|
}
|
|
if (newview == '-') {
|
|
println("deleting ${matches.size()} matches from ${n}")
|
|
} else {
|
|
def nue = new File(resDir, newview + n.substring(basename.length()))
|
|
println("moving ${matches.size()} matches from ${n} to ${nue.name}")
|
|
// TODO if the original lacked a trailing newline, this will corrupt previously final key
|
|
nue.withWriterAppend('ISO-8859-1') {out ->
|
|
matches.each {line -> out.writeLine(line)}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|