是否可以使用一些智能管道和编码,以递归方式合并yaml文件?在PHP中,我创建了一个数组(每个模块可以添加或更新系统中的/的配置节点).
目标是导出shellcript,它将所有单独的模块文件夹的配置文件合并为大合并文件.例如,它更快,更高效,客户在我们通过FTP部署新版本时不需要模块化.
它应该像PHP函数一样: array_merge_recursive
文件系统结构如下:
mod/a/config/sys.yml mod/a/config/another.yml mod/b/config/sys.yml mod/b/config/another.yml mod/c/config/totally-new.yml sys/config/sys.yml
配置看起来像:
date: format: date_regular: %d-%m-%Y
例如,一个模块可以这样做:
date: format: date_regular: regular dates are boring date_special: !!!%d-%m-%Y!!!
到目前为止,我有:
#!/bin/bash #........ cp -R $dir_project/ $dir_to/ for i in $dir_project/mod/*/ do cp -R "${i}/." $dir_to/sys/ done
这当然会破坏循环中所有现有的配置文件..(其余的系统文件都是唯一命名的)
基本上,我需要一个用于命令行的yaml解析器,以及一个像array_merge_recursive一样的替代方法.然后一个yaml作家输出它合并.我担心我必须开始学习Python,因为bash不会在这个上削减它.