From 07af5d83f992fc4e697f832ab4110c7605f73c7d Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Thu, 10 Mar 2011 21:10:15 -0800 Subject: [PATCH] redo: only default to 'all' in the toplevel instance of redo. We already did this in minimal/do, and redo-ifchange already did this, but plain redo didn't. This made constructs like: for d in *.x; do echo "${d%.x}" done | xargs redo dangerous, because if there were no matching files, we'd try to 'redo all'. --- redo.py | 2 +- t/blank/blank.do | 3 ++- vars_init.py | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/redo.py b/redo.py index b3dc39a..6404c01 100755 --- a/redo.py +++ b/redo.py @@ -19,7 +19,7 @@ version print the current version and exit o = options.Options('redo', optspec) (opt, flags, extra) = o.parse(sys.argv[1:]) -targets = extra or ['all'] +targets = extra if opt.version: import version diff --git a/t/blank/blank.do b/t/blank/blank.do index 36ca2fa..d4c3b3f 100644 --- a/t/blank/blank.do +++ b/t/blank/blank.do @@ -1,2 +1,3 @@ redo-ifchange - +redo-ifcreate +redo diff --git a/vars_init.py b/vars_init.py index 849c20f..47821d1 100644 --- a/vars_init.py +++ b/vars_init.py @@ -3,6 +3,8 @@ import sys, os def init(targets): if not os.environ.get('REDO'): # toplevel call to redo + if len(targets) == 0: + targets.append('all') exenames = [os.path.abspath(sys.argv[0]), os.path.realpath(sys.argv[0])] dirnames = [os.path.dirname(p) for p in exenames]