aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-04-10 14:51:40 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-04-10 14:54:55 +0200
commit5beba082f89d2caf078a5a869c773bf4adabad4c (patch)
tree7dfbab0f6e292e0aaeb25ae983d37dbcdd9ec6de /node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
parente5b2095628ed2aa7c24245f403d086b04ef0727c (diff)
Add insertBefore insertAfter and multiline replace
Diffstat (limited to 'node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java29
1 files changed, 18 insertions, 11 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
index cfd7756ad0e..83954551905 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
@@ -44,30 +44,35 @@ public class Editor {
for (String line : lines) {
LineEdit edit = editor.edit(line);
+ if (!edit.prependLines().isEmpty()) {
+ modified = true;
+ maybeAdd(diff, edit.prependLines());
+ newLines.addAll(edit.prependLines());
+ }
+
switch (edit.getType()) {
- case REMOVE:
- modified = true;
- maybeRemove(diff, line);
- break;
case REPLACE:
modified = true;
- String replacementLine = edit.replacementLine();
- newLines.add(replacementLine);
maybeRemove(diff, line);
- maybeAdd(diff, replacementLine);
break;
case NONE:
newLines.add(line);
break;
default: throw new IllegalArgumentException("Unknown EditType " + edit.getType());
}
+
+ if (!edit.appendLines().isEmpty()) {
+ modified = true;
+ maybeAdd(diff, edit.appendLines());
+ newLines.addAll(edit.appendLines());
+ }
}
List<String> linesToAppend = editor.onComplete();
if (!linesToAppend.isEmpty()) {
modified = true;
newLines.addAll(linesToAppend);
- linesToAppend.forEach(line -> maybeAdd(diff, line));
+ maybeAdd(diff, linesToAppend);
}
if (!modified) {
@@ -80,9 +85,11 @@ public class Editor {
return true;
}
- private static void maybeAdd(StringBuilder diff, String line) {
- if (!diffTooLarge(diff)) {
- diff.append('+').append(line).append('\n');
+ private static void maybeAdd(StringBuilder diff, List<String> lines) {
+ for (String line : lines) {
+ if (!diffTooLarge(diff)) {
+ diff.append('+').append(line).append('\n');
+ }
}
}