Подтвердить что ты не робот

Как установить рабочий каталог для задачи Fabric?

Предполагая, что я определяю тривиальную задачу для списка файлов на удаленном сервере:

from fabric.api import run, env

env.use_ssh_config = True

def list_files():
    run('ls')

И я выполняю его с помощью:

fab -H server list_files

Как я могу указать рабочий каталог для команды, которую я запускаю, кроме выполнения:

run('cd /tmp && ls')

Что для меня не очень идиоматично?

Отказ от ответственности: я впервые смотрю на Fabric в своей жизни, и я совершенно не знаком с Python.

4b9b3361

Ответ 1

Используйте Контекстный менеджер cd:

from fabric.api import run, env
from fabric.context_managers import cd

env.use_ssh_config = True

def list_files():
    with cd('/tmp'):
        run('ls')