The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

yamltidy - Reformat YAML files

ABSTRACT

DESCRIPTION

This script checks YAML files according to a configuration and automatically reformats them. It will output the formatted code on standard output, or edit the file directly.

EXAMPLES

Tidy a file and print to stdout
    % cat in.yaml
    ---
    a:
        b:
            c: d
    % yamltidy in.yaml
    ---
    a:
      b:
        c: d
Tidy content from stdin
    % echo '---
    a:
        b:
            c: d' | yamltidy -
    ---
    a:
      b:
        c: d
Tidy a file and save the result back
    % yamltidy --inplace in.yaml
    % cat in.yaml
    ---
    a:
      b:
        c: d
Process a list of files from stdin
    # Tidy all .yaml files that are in git
    % git ls-files | grep '.yaml$' | yamltidy --batch-stdin --inplace
    # Only tidy modified files
    % git ls-files --modified | grep '.yaml$' | yamltidy --batch-stdin --inplace
Use a certain configuration file
    % yamltidy -c /path/to/yamltidy.yaml file.yaml
Partial formatting

From within an editor you can pass only a part of the file on stdin. This is important for keeping the indentation of that part. Also it won't add a --- header. Compare:

    % echo '
      a:
          b: c' | yamltidy -
    ---
    a:
      b: c
    % echo '
        a:
            b: c' | yamltidy --partial -

        a:
          b: c

Vim example configuration:

    # :noremap <leader>yt :%!yamltidy -<CR>
    # :vnoremap <leader>yt :!yamltidy --partial -<CR>

GLOBAL OPTIONS

    --config-file -c    Config file                                
    --config-data -d    Configuration as a string                  
    --inplace -i        Edit file inplace (flag)                   
    --debug             Debugging output (flag)                    
    --partial           Input is only a part of a YAML file (flag) 
    --indent            Override indentation spaces from config    
    --batch-stdin       Tidy all file names passed via STDIN (flag)
    --verbose           Output information (flag)                  
    --help -h           print usage message and exit (flag)        
    --version           Print version information (flag)           

SUBCOMMANDS