diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-04-10 14:51:40 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-04-10 14:54:55 +0200 |
commit | 5beba082f89d2caf078a5a869c773bf4adabad4c (patch) | |
tree | 7dfbab0f6e292e0aaeb25ae983d37dbcdd9ec6de /node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java | |
parent | e5b2095628ed2aa7c24245f403d086b04ef0727c (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.java | 29 |
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'); + } } } |