
***************
Os support
***************

Pywizard do not have any Os-dependent component requirements, so you can run it on
whatever Os that run python.
For using os-dependent features, pywizard provides couple tools described in this chapter.

Os compatibility api
====================

As your provision script are just python script, you can make really flexible checks of
surrounding environment, but to simplify this and make those checks more beautiful, you can use
:ref:`alternatives-api`::

    package(one_of({
        os_centos() or os_windows(): 'php',
        os_ubuntu(): 'php5'
    }))

Note that you can use any boolean logic in *alternatives* expressions::

    package({
        os_centos() or os_windows(): 'php',
        os_ubuntu(): 'php5'
    })

Read more about alternatives: :ref:`alternatives-api`.

Current checks available:



Windows
===========

Package manager
-----------------

On windows Chocolatey is default package manager for os packages.

Checks
--------

.. automodule:: pywizard.compat.api
   :members: os_windows
   :imported-members:


Linux
======

Package manager
----------------

Ubuntu/debian and Centos/Redhat packages are supported.

Checks
--------

.. automodule:: pywizard.compat.api
   :members: os_linux, os_ubuntu, os_centos
   :imported-members: