How to get Fabric to automatically (instead of user-interactively) interact with shell commands? Combine with pexpect?
Question: Seeking means to get [Fabric](http://fabfile.org) to automatically (instead of
user-interactively) interact with shell commands (and not just requests for
passwords, but also requested user input when no "stdin/interactive override"
like `apt-get install -y` is available).

[This question](http://stackoverflow.com/questions/5182857/can-i-use-fabric-
to-perform-interactive-shell-commands) along with these [Fabric
docs](http://docs.fabfile.org/en/1.3.3/usage/interactivity.html?highlight=interactive)
suggest that Fabric can only "push the interactivity" back to the human user
that's running the Fabric program. Seeking to instead fully automate without
any human presence. Don't yet have a "real," current problem to solve, just
preparing for possible, future obstacle.

Possibly useful to combine with [pexpect](http://www.noah.org/python/pexpect/)
(or similar, alternative mechanism) if Fabric can't exclusively handle all
stdin/prompts automatically? Hoping it doesn't need to be an ["either/or" kind
of thing](http://stackoverflow.com/questions/4200267/fabric-vs-pexpect). Why
not leverage both (pexpect and Fabric) where appropriate, if applicable, in
same program/automation?


Answer: As Glenn, I would say use pexpect; in addition,

have a look at this wrapper I wrote to script the pexpect behaviour from
fabric:

    
    
    from ilogue.fexpect import expect, expecting, run 
    
    prompts = []
    prompts += expect('What is your name?','John')
    prompts += expect('Where do you live?','New York')
    
    with expecting(prompts):
        run('command')
    

See also my blogpost on [fexpect or how to handle prompts in fabric with
pexpect](http://ilogue.com/jasper/blog/fexpect--dealing-with-prompts-in-
fabric-with-pexpect/)

