• Dan Carley's avatar
    command/fmt: Add new fmt command · cc41c7cf
    Dan Carley authored
    This uses the `fmtcmd` package which has recently been merged into HCL. Per
    the usage text, this rewrites Terraform config files to their canonical
    formatting and style.
    
    Some notes about the implementation for this initial commit:
    
    - all of the fmtcmd options are exposed as CLI flags
    - it operates on all files that have a `.tf` suffix
    - it currently only operates on the working directory and doesn't accept a
      directory argument, but I'll extend this in subsequent commits
    - output is proxied through `cli.UiWriter` so that we write in the same way
      as other commands and we can capture the output during tests
    - the test uses a very simple fixture just to ensure that it is working
      correctly end-to-end; the fmtcmd package has more exhaustive tests
    - we have to write the fixture to a file in a temporary directory because it
      will be modified and for this reason it was easier to define the fixture
      contents as a raw string
    cc41c7cf