Source code for fabtools.require.pkg

"""
SmartOS packages
================

This module provides high-level tools to manage `SmartOS`_ packages.

.. _SmartOS: http://smartos.org/

"""
from __future__ import with_statement

from fabtools.pkg import (
    install,
    is_installed,
    uninstall,
)


[docs]def package(pkg_name, update=False, yes=None): """ Require a SmartOS package to be installed. :: from fabtools import require require.pkg.package('foo') """ if not is_installed(pkg_name): install(pkg_name, update, yes)
[docs]def packages(pkg_list, update=False): """ Require several SmartOS packages to be installed. :: from fabtools import require require.pkg.packages([ 'top', 'unzip', 'zip', ]) """ pkg_list = [pkg for pkg in pkg_list if not is_installed(pkg)] if pkg_list: install(pkg_list, update)
[docs]def nopackage(pkg_name, orphan=True): """ Require a SmartOS package to be uninstalled. :: from fabtools import require require.pkg.nopackage('top') """ if is_installed(pkg_name): uninstall(pkg_name, orphan)
[docs]def nopackages(pkg_list, orphan=True): """ Require several SmartOS packages to be uninstalled. :: from fabtools import require require.pkg.nopackages([ 'top', 'zip', 'unzip', ]) """ pkg_list = [pkg for pkg in pkg_list if is_installed(pkg)] if pkg_list: uninstall(pkg_list, orphan)