p0deje/puppet-display — pull request #5 by joshbeard (2014-12-14 08:42:12+00:00)
Title: Add flexibility, FreeBSD support, validation, more

This is a pretty big pull request that includes a variety of enhancements.

The primary focus of these changes was to allow for more customization and flexibility when using the module.

### 1. Support more customization

The sub-classes of this module were completely parameterized. This allows them
to be used independently of each other.

For example, if we only want to manage __xvfb__ _without_ managing __x11vnc__,
or the other way around.

* Support for running as a custom user (non-root)
* Support for a custom `fbdir` for __xvfb__
* Support custom package/service names for xvfb and x11vnc
* Support for a custom binary path for xvfb and x11vnc
* Init script templates were updated to make use of the new parameter values

The base class (`display`) can still be used as a "wrapper" class to manage
both __xvfb__ and __x11vnc__. The base class parameters are simply passed
to the sub-classes. This allows for backwards compatibility while also
allowing those sub-classes to be used by themselves.

### 2. FreeBSD support

FreeBSD support has been added to the module by providing sane defaults in
`params.pp` and init scripts for __xvfb__ and __x11vnc__

### 3. Parameter validation

The `validate_` functions for Puppet Labs' stdlib module are used to validate
all class parameter values.

### 4. Improve documentation

The README was heavily modified to provide a complete listing of all class
parameters and to provide more examples.

### 5. Style guide adherence

Various small items to better comply with the Puppet Labs Style Guide, such
as using __ensure__ for file resources (and specifying the type of file).

### 6. Improvements to Debian init scripts

In addition to supporting the custom values to the parameters added, the Debian
init scripts now support a __status__ command.

### 7. Preserve backwards-compatibility

The changes in this pull request are completely backwards-compatible. The
defaults for all values match the original module design and the resulting
functionality is the same.