diff options
| author | Steven Knight <knight@baldmt.com> | 2004-08-19 14:12:31 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2004-08-19 14:12:31 (GMT) |
| commit | d46e54c513203adf47bf4e3f12970522dee547af (patch) | |
| tree | b9931ed664818436b76c4b6ed116bb3ca5f274da /src | |
| parent | 1c53f32fbf5244ade7c2b428295e4f1489626e78 (diff) | |
| download | SCons-d46e54c513203adf47bf4e3f12970522dee547af.zip SCons-d46e54c513203adf47bf4e3f12970522dee547af.tar.gz SCons-d46e54c513203adf47bf4e3f12970522dee547af.tar.bz2 | |
Delete() should not blow up if what it's deleting doesn't exist.
Diffstat (limited to 'src')
| -rw-r--r-- | src/CHANGES.txt | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Defaults.py | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 3bf91ce..a3040a9 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -12,7 +12,9 @@ RELEASE 0.97 - XXX From Steven Knight - - XXX + - Add a must_exist flag to Delete() to let the user control whether + it's an error if the specified entry doesn't exist. The default + behavior is now to silently do nothing if it doesn't exist. diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py index 8100869..c75ac25 100644 --- a/src/engine/SCons/Defaults.py +++ b/src/engine/SCons/Defaults.py @@ -181,14 +181,18 @@ def copy_func(dest, src): Copy = ActionFactory(copy_func, lambda dest, src: 'Copy("%s", "%s")' % (dest, src)) -def delete_func(entry): +def delete_func(entry, must_exist=0): + if not must_exist and not os.path.exists(entry): + return None if os.path.isfile(entry): return os.unlink(entry) else: return shutil.rmtree(entry, 1) -Delete = ActionFactory(delete_func, - lambda entry: 'Delete("%s")' % entry) +def delete_strfunc(entry, must_exist=0): + return 'Delete("%s")' % entry + +Delete = ActionFactory(delete_func, delete_strfunc) Mkdir = ActionFactory(os.makedirs, lambda dir: 'Mkdir("%s")' % dir) |
