Fabric - Is there any way to capture run stdout?
fabric, python
Solution
Exactly what you are asking for should be happening. From the docs:
run will return the result of the remote program’s stdout as a single (likely multiline) string.
`run()`, and related commands like `local()` and `sudo()`, return an `_AttributeString` object that is just a wrapper around stdout with attribute access to additional information like failure/success booleans, stderr, the command run, etc. The result object also has a `stdout` attribute, which is just more explicit.
To troubleshoot, `print type(output), output` to be sure the response is what you expect. Examine `output.failed` and `output.stderr`. It could be the command isn't doing what you expect, there is no "backups" directory, etc.
Problem
I'm trying to do the following: ``` output = run("ls -l backups") for line in output.split("/n"): do_stuff(line) ``` Any way of having the `stdout` of `ls` sent to `output`? To be more specific: I'm using a CLI app called `s3cmd` which does something similar to `ls`, but with remote Amazon S3 buckets. So, a replacement for `ls` won't help, unfortunately.