Hi Mich,

The connection object (you're using ctx in your examples) has a .local
method that is just a pass-through to invoke.run.  It's documented on
the connection object's page:
http://docs.fabfile.org/en/2.4/api/connection.html?highlight=local#fabric.connection.Connection.local

On Mon, Apr 1, 2019 at 5:55 AM Michel Albert <mic...@albert.lu> wrote:
>
> Hi,
>
>
> Consider the following fabric-1 task. For illustration I kept it really short:
>
> @fab.task
> def sample():
>     version = fab.local('python setup.py --version')
>     fab.run('mkdir -p /snapshots/%s' % version.strip())
>
> This task needs to run a local and remote command. I am now trying to port 
> this to fabric-2, and I can't figure out how I can implement this. If I 
> define the "hosts" variable in the task, then the first line will be executed 
> on the remote host as well, which I don't want. A naive aproach which won't 
> work:
>
> @task(hosts=PROD)
> def sample(ctx):
>     version = ctx.run('python setup.py --version').strip()   # <- this won't 
> work
>     ctx.run('mkdir -p /snapshots/%s' % version)
>
> At first I thought I would split the task into two, one for just local 
> commands and one for remote tasks, but then I am forced to pass in the 
> context, which will in turn cause it again to be run remotely:
>
> @task
> def get_version(ctx):
>     version = ctx.run('python setup.py --version').strip()
>     return version
>
> @task(hosts=PROD)
> def sample(ctx):
>     version = get_version(ctx)  # <- this won't work
>     ctx.run('mkdir -p /snapshots/%s' % version)
>
> How can I accomplish something like this? And where is it noted in the docs? 
> In the current example on the "Upgrading from 1.x" page does not have a 
> single task mixing local with remote commands in any way.
>
>
> Regards,
>
>
> Mich
>
> _______________________________________________
> Fab-user mailing list
> Fab-user@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fab-user

_______________________________________________
Fab-user mailing list
Fab-user@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to