aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/cleantrees.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-20 00:15:53 +0200
committerGitHub <noreply@github.com>2016-12-20 00:15:53 +0200
commit4317edca25a29a191c51c520e2861f6d45f7b6b1 (patch)
treed99523668454eede71ca5be5fd13c66f97db7cdf /mesonbuild/scripts/cleantrees.py
parent589a56e78f37861ddf920ae0aa4710b409131fb7 (diff)
parenta4219760ba52e7cae97e20c445095494c393a8a4 (diff)
downloadmeson-4317edca25a29a191c51c520e2861f6d45f7b6b1.zip
meson-4317edca25a29a191c51c520e2861f6d45f7b6b1.tar.gz
meson-4317edca25a29a191c51c520e2861f6d45f7b6b1.tar.bz2
Merge pull request #1227 from centricular/ninja-clean-recursive-dir-delete
run_project_tests.py: Also do ninja clean on tests
Diffstat (limited to 'mesonbuild/scripts/cleantrees.py')
-rw-r--r--mesonbuild/scripts/cleantrees.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/mesonbuild/scripts/cleantrees.py b/mesonbuild/scripts/cleantrees.py
new file mode 100644
index 0000000..0af8dd0
--- /dev/null
+++ b/mesonbuild/scripts/cleantrees.py
@@ -0,0 +1,43 @@
+# Copyright 2016 The Meson development team
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+import sys
+import shutil
+import pickle
+
+def rmtrees(build_dir, trees):
+ for t in trees:
+ # Never delete trees outside of the builddir
+ if os.path.isabs(t):
+ print('Cannot delete dir with absolute path {!r}'.format(t))
+ continue
+ bt = os.path.join(build_dir, t)
+ # Skip if it doesn't exist, or if it is not a directory
+ if os.path.isdir(bt):
+ shutil.rmtree(bt, ignore_errors=True)
+
+def run(args):
+ if len(args) != 1:
+ print('Cleaner script for Meson. Do not run on your own please.')
+ print('cleantrees.py <data-file>')
+ return 1
+ with open(args[0], 'rb') as f:
+ data = pickle.load(f)
+ rmtrees(data.build_dir, data.trees)
+ # Never fail cleaning
+ return 0
+
+if __name__ == '__main__':
+ run(sys.argv[1:])