Source code for fabtools.utils


from pipes import quote
import os
import posixpath

from fabric.api import env, hide, run, sudo

[docs]def run_as_root(command, *args, **kwargs): """ Run a remote command as the root user. When connecting as root to the remote system, this will use Fabric's ``run`` function. In other cases, it will use ``sudo``. """ if env.user == 'root': func = run else: func = sudo return func(command, *args, **kwargs)
def get_cwd(local=False): from fabric.api import local as local_run with hide('running', 'stdout'): if local: return local_run('pwd', capture=True) else: return run('pwd') def abspath(path, local=False): path_mod = os.path if local else posixpath if not path_mod.isabs(path): cwd = get_cwd(local=local) path = path_mod.join(cwd, path) return path_mod.normpath(path) def download(url, retry=10): from fabtools.require.curl import command as require_curl require_curl() run('curl --silent --retry %s -O %s' % (retry, url)) def read_file(path): with hide('running', 'stdout'): return run('cat {0}'.format(quote(path))) def read_lines(path): return read_file(path).splitlines()