# -*- coding: utf-8 -*- from fabric import api as _fabric from fabric.api import local, get, env, put import cuisine as _cuisine from revolver.decorator import inject_use_sudo VERSION = '0.0.3' env.sudo_forced = False env.sudo_user = None _run = _fabric.run _sudo = _fabric.sudo put = inject_use_sudo(put) def run(*args, **kwargs): if not env.sudo_forced: return _run(*args, **kwargs) return sudo(*args, **kwargs) def sudo(*args, **kwargs): if env.sudo_user: kwargs['user'] = env.sudo_user return _sudo(*args, **kwargs) _fabric.run = _cuisine.run = run
from cuisine import file_attribs as attributes from cuisine import file_attribs_get as attributes_get from cuisine import file_ensure as ensure from cuisine import file_is_file as exists from cuisine import file_is_link as is_link from cuisine import file_link as link from cuisine import file_local_read as read_local from cuisine import file_read as read from cuisine import file_update as update from cuisine import file_write as write from fabric.contrib.files import append, comment, contains, sed, uncomment from revolver import core from revolver.decorator import inject_use_sudo append = inject_use_sudo(append) comment = inject_use_sudo(comment) contains = inject_use_sudo(contains) sed = inject_use_sudo(sed) uncomment = inject_use_sudo(uncomment) write = inject_use_sudo(write) def temp(mode=None, owner=None, group=None): path = core.run('mktemp').stdout attributes(path, mode=mode, owner=owner, group=group) return path def remove(location, recursive=False, force=True): force = force and '-f' or ''
def test_inject_use_sudo_with_forced_sudo(): with ctx.sudo(): assert decorator.inject_use_sudo(_use_sudo_dummy)()
def test_inject_use_sudo_does_nothing_if_argument_given(): assert decorator.inject_use_sudo(_use_sudo_dummy)(use_sudo=True) assert not decorator.inject_use_sudo(_use_sudo_dummy)(use_sudo=False)
from cuisine import file_attribs_get as attributes_get from cuisine import file_local_read as read_local from cuisine import file_read as read from cuisine import file_update as update from cuisine import file_write as write from fabric.contrib.files import append from fabric.contrib.files import comment from fabric.contrib.files import contains from fabric.contrib.files import exists from fabric.contrib.files import sed from fabric.contrib.files import uncomment from revolver.core import sudo, run from revolver.decorator import inject_use_sudo append = inject_use_sudo(append) comment = inject_use_sudo(comment) contains = inject_use_sudo(contains) exists = inject_use_sudo(exists) sed = inject_use_sudo(sed) uncomment = inject_use_sudo(uncomment) def remove(location, recursive=False, force=True): force = force and '-f' or '' recursive = recursive and '-r' or '' run('rm %s %s %s' % (force, recursive, location)) def copy(source, destination, force=True, mode=None, owner=None, group=None): force = force and '-f' or ''