Base Functions ====================================== ``argyle.base`` contains functions which extend the Fabric api to make the rest of the Argyle framework work. .. function:: sshagent_run(cmd) The base ssh library paramiko and hence Fabric does not support SSH Agent forwarding. However, using agent forwarding can be helpful for accessing private repositories (such as hg/git) using ssh without having to generate and allow the ssh key for the server on the repository. To use this function you must enable SSH forwarding on your system.:: ForwardAgent yes This code is based on code from `Lincoln Loop `_. For more info you can see the `Fabric issue `_ and `paramiko issue `_ for adding support for agent forwarding. .. note:: This issue has been fixed in Fabric 1.4. .. function:: upload_template(filename, destination, context=None, use_sudo=False, backup=True, mode=None) Fabric comes with support for uploading files using a template. See `fabric.contrib.files.upload_template `_. With this you can use either Python string formatting or Jinja2. Argyle uses this same idea but with a few differences: 1. All templates use Jinja2. 2. The current Fabric environment is always passed into the template context. 3. You can pass list of template names. The first matched template will be used. Argyle ships with templates which are loaded using `jinja2.PackageLoader `_. You can override these template by defining :ref:`env.ARGYLE_TEMPLATE_DIRS ` as a tuple of template locations.