Browse Source

makepanda: Add a "self-destruct" script for removing makepanda specifics

Sam Edwards 9 years ago
parent
commit
e730b8be56
1 changed files with 38 additions and 0 deletions
  1. 38 0
      makepanda/selfdestruct.py

+ 38 - 0
makepanda/selfdestruct.py

@@ -0,0 +1,38 @@
+#!/usr/bin/env python2
+
+import os
+import re
+import sys
+import shutil
+
+# Ensure user WANTS th
+if len(sys.argv) < 2 or sys.argv[1] != '--yes':
+    print('======== MAKEPANDA SELF-DESTRUCT ========')
+    print('This script will destroy every trace of')
+    print('makepanda from the Panda3D directory that')
+    print('contains it. This is for testing CMake\'s')
+    print('dependencies and fully removing makepanda')
+    print('should the latter buildsystem no longer')
+    print('be desired.')
+    print('')
+    print('If you are sure, pass --yes')
+    sys.exit(1)
+
+# Some sanity-checks to make sure this script is in the right location:
+scriptdir = os.path.abspath(os.path.dirname(__file__))
+assert os.path.split(scriptdir)[1] == 'makepanda'
+root = os.path.dirname(scriptdir)
+assert os.path.isfile(os.path.join(root, 'LICENSE'))
+assert os.path.isdir(os.path.join(root, 'pandatool'))
+
+# Now we get to work! First, the makepanda directory isn't needed:
+shutil.rmtree(os.path.join(root, 'makepanda'))
+
+# Then we look under each of the separate project trees:
+projects = ['contrib', 'direct', 'dtool', 'panda', 'pandatool']
+for project in projects:
+    for path, dirs, files in os.walk(os.path.join(root, project)):
+        # Get rid of _composite#.cxx files
+        for filename in files:
+            if re.match(r'.*_composite[0-9]+\.cxx', filename):
+                os.unlink(os.path.join(path, filename))