%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/states/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/states/cabal.pyo

�
���^c@@s~dZddlmZmZmZddlmZmZddlZ	d�Z
d�Zdde
dd�Zddd�ZdS(	u-
Installation of Cabal Packages
==============================

.. versionadded:: 2015.8.0

These states manage the installed packages for Haskell using
cabal. Note that cabal-install must be installed for these states to
be available, so cabal states should include a requisite to a
pkg.installed state for the package which provides cabal
(``cabal-install`` in case of Debian based distributions). Example::

.. code-block:: yaml

   cabal-install:
     pkg.installed

   ShellCheck:
     cabal.installed:
       - require:
         - pkg: cabal-install

i(tabsolute_importtprint_functiontunicode_literals(tCommandExecutionErrortCommandNotFoundErrorNcC@s4tjjjd�dk	o3tjjjd�dk	S(u4
    Only work when cabal-install is installed.
    ucabalughc-pkgN(tsalttutilstpathtwhichtNone(((s5/usr/lib/python2.7/site-packages/salt/states/cabal.pyt__virtual__ scC@s1|jd�\}}}|j�||j�fS(u=
    Parse pkg string and return a tuple of package name, separator, and
    package version.

    Cabal support install package with following format:

    * foo-1.0
    * foo < 1.2
    * foo > 1.3

    For the sake of simplicity only the first form is supported,
    support for other forms can be added later.
    u-(t	partitiontstrip(tpkgtpkg_namet	separatortpkg_ver((s5/usr/lib/python2.7/site-packages/salt/states/cabal.pyt_parse_pkg_string(sc	C@s@i|d6dd6dd6id6}ytdd|d|�}Wn7ttfk
rx}t|d<d	j|�|d<|SX|dk	r�|}n	|g}y#td
d|dtd|�}	Wn:ttfk
r�}t|d<dj||�|d<|SXg}
g}x�|D]z}t|�\}
}}|
|	krA|j|�q
|rw|	|
|krg|j|�q�|
j|�q
|
j|�q
Wt	d
rd|d<g}|r�|jdjdj
|���n|
r�|jdjdj
|�dj
|
���ndj
|�|d<|S|sQt|d<djdj
|�dj
|
��|d<|Sy)tdd|d|d|d|�}WnCttfk
r�}t|d<djdj
|�|�|d<|SX|rt|t�rt|d<igd6|d6|d<djdj
|��|d<n&t|d<djdj
|��|d<|S(u
    Verify that the given package is installed and is at the correct version
    (if specified).

    .. code-block:: yaml

        ShellCheck-0.3.5:
          cabal:
            - installed:

    name
        The package to install
    user
        The user to run cabal install with
    install_global
        Install package globally instead of locally
    env
        A list of environment variables to be set prior to execution. The
        format is the same as the :py:func:`cmd.run <salt.states.cmd.run>`.
        state function.
    unameuresultuucommentuchangesucabal.updatetusertenvuCould not run cabal update {0}u
cabal.listt	installeduError looking up '{0}': {1}utestu)Packages(s) '{0}' are set to be installedu, u"Packages(s) '{0}' satisfied by {1}u. u
cabal.installtpkgstinstall_globaluError installing '{0}': {1}uoldunewu(Packages(s) '{0}' successfully installedu#Could not install packages(s) '{0}'N(
R	t__salt__RRtFalsetformattTrueRtappendt__opts__tjoint
isinstancetdict(tnameRRRRtrettcallterrtpkg_listtinstalled_pkgstpkgs_satisfiedtpkgs_to_installR
Rt_Rtcomment_msg((s5/usr/lib/python2.7/site-packages/salt/states/cabal.pyR:s�"
		




"
"



cC@sGi|d6dd6dd6id6}y#tdd|dtd	|�}Wn9ttfk
r�}t|d<d
j||�|d<nX||kr�t|d<dj|�|d<|Stdr�d|d<d
j|�|d<|Stdd|d|d	|�r&t|d<d|d|<dj|�|d<nt|d<dj|�|d<|S(u5
    Verify that given package is not installed.
    unameuresultuucommentuchangesu
cabal.listRRRuError looking up '{0}': {1}uPackage '{0}' is not installedutestu"Package '{0}' is set to be removeducabal.uninstallR
uRemovedu&Package '{0}' was successfully removeduError removing package '{0}'N(R	RRRRRRR(R RRR!R%R#((s5/usr/lib/python2.7/site-packages/salt/states/cabal.pytremoved�s,"






(t__doc__t
__future__RRRtsalt.exceptionsRRtsalt.utils.pathRR
RR	RRR*(((s5/usr/lib/python2.7/site-packages/salt/states/cabal.pyt<module>s		o

Zerion Mini Shell 1.0