salty_linter Yar. Matey, A quick and dirty linter for salt. TODO: - some parameters take either a string or a list blah: .: - : value - : blah: : - - : value - : - Stage 1: - Validate common salt-state / warn if an unexpected one is seen - Stage 2: - Validate state/function combo / warn on unexpected combos - Complain about duplicate state/function combos. - Complain about mutually exclusive fields (for example 'contents' and 'source' from file.manage) - Stage 3: - Validate function parameter names - Include global parameters like require, unless etc (https://docs.saltstack.com/en/latest/ref/states/requisites.html) - Report on missing mandatory parameters (though salt will likely error on this already) - Stage 4: - Validate function argument types - How to handle 'string or list' type args ? - Complain about duplicate parameters - Complain about unexpected parameters - Stage 5: - Handle includes (wrt duplicate state/functions) - Stage 6: - Handle excludes - Stage 7: (???) - Validate common module.run . combos - Stage 8: (???) - Validate common module.run parameters ===================================== Development Notes > virtualenv --python=python3.6 env > source ./env/bin/activate > pip3 install -r requirements.txt > python3 setup.py develop Build the tar.gz > python setup.py sdist