github repository: https://github.com/jujumilk3/yamlier
If you have to edit yaml file on CI/CD pipeline or other situations, just use it.
install
wget https://github.com/jujumilk3/yamlier/releases/download/v0.2.0/yamlier.{os}.{arcihtecture} -O ./yamlier
chmod +x ./yamlier
Of course, if you want to use it globally, You have to move it into bin
dir
that referenced by your account.
for example
- MacOS(amd64) ```shell
$ wget https://github.com/jujumilk3/yamlier/releases/download/v0.2.0/yamlier.darwin.amd64 -O ./yamlier
chmod +x ./yamlier
./yamlier edit ./yamlier edit developer.yaml languages.perl poor ./developer-modified.yaml
2. github actions (github actions' ubuntu-latest image is amd64 architecture)
```yaml
...
jobs:
build:
runs-on: ubuntu-latest
...
- name: wget
uses: wei/wget@v1
with:
args: https://github.com/jujumilk3/yamlier/releases/download/v0.2.0/yamlier.linux.amd64 -O yamlier
- name: change file mod
run: sudo chmod +x ./yamlier
- name: run yamlier
run: ./yamlier edit ./developer.yaml name changed_name ./developer-yamlier.yaml
...
usage
- yamlier --help
- yamlier edit [flags]
-
yamlier edit [file_path] [key] [value] | [output_filepath]
-
example
# developer.yaml
name: Martin D'vloper
job: Developer
skill: Elite
foods:
- Apple
- Orange
- Strawberry
- Mango
languages:
perl: Elite
python: Elite
pascal: Lame
education: |
4 GCSEs
3 A-Levels
BSc in the Internet of Things
yamlier edit ./developer.yaml name changed_name ./developer-yamlier.yaml
# developer-yamlier.yaml
education: |
4 GCSEs
3 A-Levels
BSc in the Internet of Things
foods:
- Apple
- Orange
- Strawberry
- Mango
job: Developer
languages:
pascal: Lame
perl: Elite
python: Elite
name: changed_name # name changed
skill: Elite
※ CAUTION: new yaml's keys are ordered.
Also, you can handle deeper values
# developer.yaml
name: Martin D'vloper
job: Developer
skill: Elite
foods:
- Apple
- Orange
- Strawberry
- Mango
languages:
perl: Elite
python: Elite
pascal: Lame
education: |
4 GCSEs
3 A-Levels
BSc in the Internet of Things
yamlier edit ./developer.yaml languages.perl Poor ./developer-yamlier.yaml
# developer-yamlier.yaml
education: |
4 GCSEs
3 A-Levels
BSc in the Internet of Things
foods:
- Apple
- Orange
- Strawberry
- Mango
job: Developer
languages:
pascal: Lame
perl: Poor # languages.perl changed
python: Elite
name: Martin D'vloper
skill: Elite
I made it because i had to edit my yaml config file on CI/CD pipeline. There were some values that should not be exposed. I thought there is some cli tool that edits yaml file. Because kustomize actually does it. But there's no yaml editing cli tool.
Everyone who needs to edit yaml file at cli is writing temporary bash, shell, python script to edit yaml file.
Don't complicate things. Use this.
Top comments (0)