# -*- coding: utf-8 -*-
# vim: ft=yaml
---
# Extend the `default` configuration provided by `yamllint`
extends: 'default'

# Files to ignore completely
# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally
# 2. All YAML files under directory `.cache/`, introduced during the CI run
# 3. All YAML files under directory `.git/`
# 4. All YAML files under directory `node_modules/`, introduced during the CI run
# 5. Any SLS files under directory `test/`, which are actually state files
# 6. Any YAML files under directory `.kitchen/`, introduced during local testing
# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
# 8. All YAML files heavily reliant on Jinja; these can be tackled in a subsequent PR
ignore: |
  .bundle/
  .cache/
  .git/
  node_modules/
  test/**/states/**/*.sls
  .kitchen/
  kitchen.vagrant.yml
  salt/osfamilymap.yaml
  salt/osmap.yaml
  salt/osfingermap.yaml

yaml-files:
  # Default settings
  - '*.yaml'
  - '*.yml'
  - .salt-lint
  - .yamllint
  # SaltStack Formulas additional settings
  - '*.example'
  - test/**/*.sls

rules:
  empty-values:
    forbid-in-block-mappings: true
    forbid-in-flow-mappings: true
  line-length:
    # Increase from default of `80`
    # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`)
    max: 88
  octal-values:
    forbid-implicit-octal: true
    forbid-explicit-octal: true