Simple module to install Perl libraries via cpanm.

cpanm is a popular alternative to the CPAN client for installing Perl
libraries.  Unfortunately it can't uninstall already installed module, so it
can't handle states.
Add the `mirror` option and verify if a package is already installed.

By default, the cpanm client will use a default mirror to download
libraries, but it's possible for the end user to pass a different URL.

Since ansible favorite idempotence when possible, we verify if the
module is already installed before running the cpanm client.

Another minor additional change, the `notest` option is now a boolean.
Alias name to pkg.
changing permissions of modules to 0644
debconf package
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
fixed typo for showing diff
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
and it was supposed to be a dict
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
corrected indentation and now handles non existing previous key (not
just changed existing)

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
did some minor refactoring on docs and fixed spelling mistakes (thanks
Mikhail)
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
corrected my grammar (again Mikhail)

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
making pylint happier

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
postgresql_user module: Gracefully handle ALTER ROLE on read-only postgres servers.
Fix postgresql_user to understand PG namespaces

Previously postgresql_user quoted user supplied identifers to create
grant statements that look like this:

    GRANT SELECT on "tablename" to "user";

Which only works if the tablename is not in a namespace.  If you supply
a namespaced tabelname like "report.revenue" then it creates this
incorrect statement:

    GRANT SELECT on "report.revenue" to "user";

Which will not find the "revenue" table in the "report" namespace, but
will rather look for a table named "report.revenue" in the current
(default public) namespace.  The correct form is:

    GRANT SELECT on "report"."revenue" to "user";

This approach could have the unfortunate effect that code that
previously relied on the other behavior to grant privileges on tables
with periods in their names may now break.  PostgreSQL users
typically shouldn't name tables as such, and users can still access the
old behavior and use tablenames with periods in the if they must by
supplying their own quoting.
bugfix: support path separators in module path

As described by http://docs.ansible.com/intro_configuration.html#library the library supports multiple paths to load modules from. 

Currently `setup.py` treats something like `/usr/share/ansible:/my/custom/modules` as a single directory name and results in the installed modules not being on the module path. (instead they are in a directory named `/usr/share/ansible:/my/custom/modules`) 

This commit simply takes the first listed directory as the install directory for the core modules.
apt: fixed pkg=<name>=<version> fails if package is not yet installed.

Reported and patch provided by https://github.com/msolo. Closes GH-5625.
Fixes #5679: lineinfile ignores newline in line argument
reorder usermod options
Fix a bug in "hg" module so that `pull` is not set to a version.

There is a bug in the `hg` module where if a `tag` is used it won't
properly be able to update to it.

This problem is exhibited on repository where a tag is moved from an
older commit to a newer commit.
Make default ANSIBLE_REMOTE_PORT None

The ansible remote port should be None, not 22. Having a default value
of 22 means that '-o Port 22' will be appended to the ssh connection
all of the time. This is incorrect as when one would like to use
something like an ssh configuration file (-F) that sets the port to
something other than 22.

Part of this change requires that we check that, in get_config, the
value is not None before trying to cast it into an integer or float.
Fixes #5819: Added --executables to gem uninstall command.