Part of my rollout scripts contains a "puppet --parseonly" check of all of our manifests and modules to do basic pre-runtime checks of syntax (or so I thought). It basically finds all applicable modules and echos an "import $MODULENAME" for each to the standard input of puppet, to which I also pass --manifest site.pp to give it the entry point to our top-level manifests.
What it actually does is parse all of the manifests explicitly imported/included from site.pp, and parse the init.pp of all imported modules but nothing else. We've only just discovered this unfortunately after seeing syntax errors not being picked up in module subclasses. The "easy" solution of running something like find -iname "*.pp" -exec puppet --parseonly '{}' \; takes something like 5m30s on my local SSD drive so this is not a possibility. The puppet utility will not parse multiple files if you pass them to it, it seems but perhaps this is not the best way of doing things. I've read many other approaches on this list, most of which entail running pre- or post-commit hooks from version control to check the most recently changed files, but for various reasons this isn't possible for us. I'd like to know if there would be any interest in being able to pass multiple files to puppet (to save constant re- initialization and forking new processes), and would it be feasible to implement? -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-us...@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.