Puppet Cleaner

Puppet DSL source code cleaner and helper utilities

Motivation

http://santanatechnotes.blogspot.mx/2013/04/puppet-cleaner-010-released.html

Requirements

  • puppet

Installation

sudo gem install puppet-cleaner

Utilities

puppet-clean

Receives a puppet manifest file as input and outputs the result of applying the set of transformation rules that you select. If no options are selected all of them are applied, which currently is a subset of the puppet style guide.

Note: the use of ${} for variable interpolation in strings and the replacement of double with single quotes when possible are done by default and are not optional.

Usage:

    puppet-clean [-h] [-t n] [-abedlmovw ] file.pp [file2.pp...]

Options:
    -h, --help              this help message
    -d, --debug             prints tokens before and after the transformation

    -a, --alignfarrow       aligns fat arrows (`=>`)
    -b, --quotedbooleans    removes unneeded quotes around boolean literals
    -e, --ensurefirst       moves `ensure` attribute to the top
    -l, --link              declares symbolic links by using `ensure => link` and `target` attributes
    -m, --mlcomments        converts /* */ style comments to #
    -o, --octalmode         represents file modes as a 4 digits string
    -r, --resourcetitles    quotes resource titles
    -t n, --softtabs n      indents by n spaces
    -v, --quotedvariables   removes unneeded quotes around variables
    -w, --trailingws        removes trailing white space

puppet-diff

Receives two puppet manifest files and outputs its difference, after converting them to YAML. Useful for verifying what (if anything) has changed after applying puppet-clean.

Usage:
    puppet-diff [-h] [-w] old.pp new.pp

Options:
    -h, --help        this help message
    -w, --write       write a YAML file for each pp file if they are different

puppet-inspect

Receives a puppet manifest file and converts its objects (defined types, classes and nodes) to YAML.

Usage:
    puppet-inspect file.pp

Help & Feedback

You can mail me directly if you need help or have any feedback to share.