# ymlfxr
## description
rust cli for formating yaml v1.2 that passes yamllint
with default settings
## build
```bash
cargo build --release
```
## usage
```bash
Parses an input yaml and output v1.2 yaml file
usage:
ymlfxr bad.yaml > good.yaml
USAGE:
ymlfxr [FLAGS]
FLAGS:
-b, --bak Create backup of file
-d, --debug turn on debugging information
-h, --help Prints help information
-i, --fix Fix the file in place
-V, --version Prints version information
ARGS:
Sets the input file to use
```
## examples
```bash
ymlfxr ./tests/bad.yaml > ./tests/good.yaml
ymlfxr --fix ./tests/inplace.yaml
ymlfxr --bak --fix ./tests/inplace_w_bak.yaml
```
## test
functional tests require `yamllint`
```bash
./testdata/functests.sh
```
testing using cargo
```bash
cargo run ./testdata/bad.yaml
```
output:
```bash
Updating crates.io index
Compiling libc v0.2.69
Compiling bitflags v1.2.1
Compiling unicode-width v0.1.7
Compiling vec_map v0.8.1
Compiling linked-hash-map v0.5.2
Compiling strsim v0.8.0
Compiling ansi_term v0.11.0
Compiling textwrap v0.11.0
Compiling yaml-rust v0.4.3
Compiling atty v0.2.14
Compiling clap v2.33.0
Compiling ymlfxr v0.1.0 (/Users/bcsmit/go/src/github.com/xbcsmith/ymlfxr)
Finished dev [unoptimized + debuginfo] target(s) in 10.32s
Running `target/debug/ymlfxr bad.yaml`
---
name: foo
version: 0.1.0
release: ~
description: The foo package
summary: foo is the foo
requires:
- bar
- caz
provides:
- foo
instructions:
- unpack: tar -xvf foo-0.1.0.tar.xz && cd sharutils-0.1.0
pre: "sed -i 's/bar/foo/g' Makefile.in"
configure: "./configure --prefix=/usr"
build: make
test: make check
install: make install
post: ""
sources:
- archive: foo-0.1.0.tar.xz
md5: d3b07384d113edec49eaa6238ad5ff00
sha256: b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c
destination: /usr
```
```bash
yamllint ./testdata/bad.yaml
```
output:
```bash
bad.yaml
1:1 warning missing document start "---" (document-start)
7:1 error wrong indentation: expected 2 but found 0 (indentation)
10:1 error wrong indentation: expected 2 but found 0 (indentation)
12:1 error wrong indentation: expected 2 but found 0 (indentation)
20:1 error wrong indentation: expected 2 but found 0 (indentation)
```
```bash
cargo run ./testdata/bad.yaml > good.yaml
```
```bash
yamllint good.yaml
```
no output!