You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd love if there was a version of doit.tools.LongRunning that had it return TaskError if return code was non zero. I tend to use this for a light build system for tasks that have dependencies, and having it not stop at the first error requires a bunch of scrolling and buries problems.
I tend to unroll it in my own dodo.py scripts, but it'd be nice if it was inbuilt. I ended up hacking my own locally in my dodo.py and it works quite nicely:
class LongRunningTask(doit.tools.CmdAction):
' Run a command and wait for it to finish, and fail if it fails.'
def execute(self, out=None, err=None):
action = self.expand_action()
process = subprocess.Popen(
action, shell=self.shell, stdout=out, stderr=err, **self.pkwargs,)
try:
return_value = process.wait()
if return_value != 0:
return doit.exceptions.TaskError(f'Command failed with return code {return_value}')
except KeyboardInterrupt:
# normal way to stop interactive process
pass
The text was updated successfully, but these errors were encountered:
The "Interactive" checks the return code. does that work for you?
The problem of having too many features/API is that people dont find them!
So providing the building blocks to allow users to code their own solution is a good compromise.
So I would tend to reject this...
I'd love if there was a version of doit.tools.LongRunning that had it return TaskError if return code was non zero. I tend to use this for a light build system for tasks that have dependencies, and having it not stop at the first error requires a bunch of scrolling and buries problems.
I tend to unroll it in my own dodo.py scripts, but it'd be nice if it was inbuilt. I ended up hacking my own locally in my dodo.py and it works quite nicely:
The text was updated successfully, but these errors were encountered: