aboutsummaryrefslogtreecommitdiff
path: root/content/go/merger.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/go/merger.md')
-rw-r--r--content/go/merger.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/content/go/merger.md b/content/go/merger.md
new file mode 100644
index 0000000..ce355c4
--- /dev/null
+++ b/content/go/merger.md
@@ -0,0 +1,84 @@
++++
+title = "Merger"
+name = "merger"
+repository = "https://git.neonxp.ru/merger.git"
+description = "Простейший мерджер yaml'ов"
+gomod = true
++++
+
+Простейший мерджер yaml'ов
+
+## Установка
+
+```
+go install neonxp.ru/go/merger@latest
+```
+
+## Использование
+
+```
+merger -i file1.yaml -i file2.yaml -i fileN.yaml -o output.yaml
+```
+
+Есть ещё ключи:
+
+- `-replace_arrays false` - если true то массивы по одинаковым ключам будут перезатираться. По умолчанию - соединяться.
+- `-out_type` - выходной формат `yaml` (умолчание) или `json`
+
+## Пример
+
+file1.yaml
+```yaml
+a1:
+ a11:
+ - one
+ - two
+ a12: "one"
+a2:
+ a21:
+ - one
+ - two
+ a22: "one"
+ a23:
+ a231: 231
+ a232: 232
+ a233: 233
+```
+
+file2.yaml
+```yaml
+a1:
+ a11:
+ - three
+ - four
+ a12: "two"
+a2:
+ a23:
+ a231: "!!!"
+ a232: "???"
+ a233:
+ sub: tree
+ to: merge
+```
+
+output.yaml
+```yaml
+a1:
+ a11:
+ - one
+ - two
+ - three
+ - four
+ a12: two
+a2:
+ a21:
+ - one
+ - two
+ a22: one
+ a23:
+ a231: '!!!'
+ a232: ???
+ a233:
+ sub: tree
+ to: merge
+```