I must not be following, why doesn't result.succeeded / result.failed work for this use case? Or doing e.g. "if result.return_code not in [0, 1]"?
See ~third paragraph off http://docs.fabfile.org/en/1.6/api/core/operations.html#fabric.operations.run On Wed, Jun 12, 2013 at 2:45 PM, Eric Brunson <[email protected]> wrote: > I'm hoping to start a discussion of behavior that would aid in implementing > flow control. I've only been using fabric for a couple of months, so maybe > I just need some education on better coding patterns. > > What I'd like to be able to do is something like this: > > def remove_backups(path): > with settings(warn_only=True), hide('warnings'): > result = run('[ -d %s ]' % path) > if ! result.error_code: > with cd(path): > run('rm *.bak') > > Or possibly: > > def remove_backups(path): > try: > run('[ -d %s ]' % path) > except NonZeroExitCode: > print("no backup dir") > return > > with cd(path): > run('rm *.bak') > > > I end up having to do something like this: > > def remove_backups(path): > with settings(warn_only=True), hide('stderr','warnings'): > result = run('[ -d %s ] && echo true' % path) > if result == 'true': > run('rm *.bak') > > > Which is less than pythonic. > > Has there ever been discussion of throwing exceptions or handling exit codes > rather than the default "Abort unless otherwise instructed?" tactic as it > currently exists? Constructing intelligent flow control gets really messy > in the current implementation. > > Other than that, I've been using the crap out of the application and think > it's great. Thanks for all the hard work. > > Sincerely, > e. > > > > > _______________________________________________ > Fab-user mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/fab-user > -- Jeff Forcier Unix sysadmin; Python/Ruby engineer http://bitprophet.org _______________________________________________ Fab-user mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/fab-user
