2个版本
0.1.1 | 2021年11月27日 |
---|---|
0.1.0 | 2021年8月28日 |
#6 in #patch-file
9KB
123 行
一个通用的YAML文件修补器。
给定一个基础文件和一个补丁文件,yaml-patcher将输出一个修改后的文件。
补丁文件是一个列表,包含(path
, value
),其中
path
是由空格分隔的映射键或数组索引列表,形成一个指向值的路径value
是任何类型的YAML值,即使是结构化的,并将替换旧值
用法
yaml-patcher --base base.yml --patch patch.yml > patched.yml
示例
这是一个真实用例的简化示例:修改构建链中的Mkdocs文件。
基础文件
site_name: OurApp
site_description: 'App Usage & Configuration'
site_url: https://oursite.com/our-app/
dev_addr: '127.0.0.1:8666'
nav:
- Usage:
- Modules & Menus: menus-modules.md
- Product Finder: product-finder.md
- Product Viewer: product-viewer.md
- Rules Editor: ed.md
- Flow Editor: flow-editor.md
- Concepts:
- Flakes: flakes.md
- Product Genealogy: tracking.md
- TRT Flows: trt.md
- Scheduling: scheduling.md
- Configuration:
- Installation: install.md
- World: world.md
- KB: kb.md
- Resc: resc.md
- Nginx: nginx.md
- Internationalization: i18n.md
extra_javascript:
- js/autoclose-tree.js
- js/filter.js
补丁文件
site_description: 'Vroum Vroum'
site_url: http://ourclient.com/some/path
nav 0 Usage:
- Product Finder: product-finder.md
- Product Viewer: product-viewer.md
nav 2 Configuration:
- World: world.md
- KB: kb.md
结果
yaml-patcher -b mkdocs.yml -p our-client-patch.yml > our-client/mkdocs.yml
site_name: OurApp
edit_uri: ""
dev_addr: "127.0.0.1:8666"
nav:
- Usage:
- Modules & Menus: menus-modules.md
- Product Finder: product-finder.md
- Product Viewer: product-viewer.md
- Concepts:
- Flakes: flakes.md
- Product Genealogy: tracking.md
- TRT Flows: trt.md
- Scheduling: scheduling.md
- Configuration:
- World: world.md
- KB: kb.md
extra_javascript:
- js/autoclose-tree.js
- js/filter.js
site_description: Vroum Vroum
site_url: "http://some/other/url"
特性
目前yaml-patcher只更改现有值到新值,因为这覆盖了我的当前需求。
我可能还会添加新功能,如删除值、添加值或基于模式的替换。
如果您需要此类功能,请告诉我。
依赖关系
~0.7–1.4MB
~31K SLoC