summaryrefslogtreecommitdiffstats
path: root/core/checktree
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:14 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:14 -0800
commit05806d7af62e07c6225b2e7103a1b115ecf6c9ad (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/checktree
parent094268cf8cb37b9d904c8a1e3559cdd46d73cf66 (diff)
downloadbuild-05806d7af62e07c6225b2e7103a1b115ecf6c9ad.zip
build-05806d7af62e07c6225b2e7103a1b115ecf6c9ad.tar.gz
build-05806d7af62e07c6225b2e7103a1b115ecf6c9ad.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'core/checktree')
-rwxr-xr-xcore/checktree113
1 files changed, 0 insertions, 113 deletions
diff --git a/core/checktree b/core/checktree
deleted file mode 100755
index b0b9cfa..0000000
--- a/core/checktree
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/python -E
-
-import sys, os, re
-
-excludes = [r'.*?/\.obj.*?',
- r'.*?~',
- r'.*?\/.DS_Store',
- r'.*?\/.gdb_history',
- r'.*?\/buildspec.mk',
- r'.*?/\..*?\.swp',
- r'.*?/out/.*?',
- r'.*?/install/.*?']
-
-excludes_compiled = map(re.compile, excludes)
-
-def filter_excludes(str):
- for e in excludes_compiled:
- if e.match(str):
- return False
- return True
-
-def split_perforce_parts(s):
- spaces = ((s.count(" ") + 1) / 3) * 2
- pos = 0
- while spaces > 0:
- pos = s.find(" ", pos) + 1
- spaces = spaces - 1
- return s[pos:]
-
-def quotate(s):
- return '"' + s + '"'
-
-class PerforceError(Exception):
- def __init__(self,value):
- self.value = value
- def __str__(self):
- return repr(self.value)
-
-
-def run(command, regex, filt):
- def matchit(s):
- m = regex_compiled.match(s)
- if m:
- return m.group(1)
- else:
- return ""
- def filterit(s):
- if filt_compiled.match(s):
- return True
- else:
- return False
-
- fd = os.popen(command);
- lines = fd.readlines()
- status = fd.close()
- if status:
- raise PerforceError("error calling " + command)
-
- regex_compiled = re.compile(regex)
- filt_compiled = re.compile(filt)
-
- if len(lines) >= 1:
- lines = filter(filterit, lines)
- if len(lines) >= 1:
- return map(matchit, lines)
- return None
-
-try:
- if len(sys.argv) == 1:
- do_exclude = True
- elif len(sys.argv) == 2 and sys.argv[1] == "-a":
- do_exclude = False
- else:
- print "usage: checktree [-a]"
- print " -a don't filter common crud in the tree"
- sys.exit(1)
-
- have = run("p4 have ...", r'[^#]+#[0-9]+ - (.*)', r'.*')
-
- cwd = os.getcwd()
- files = run("find . -not -type d", r'.(.*)', r'.*')
- files = map(lambda s: cwd+s, files)
-
- added_depot_path = run("p4 opened ...", r'([^#]+)#.*', r'.*?#[0-9]+ - add .*');
- added = []
- if added_depot_path:
- added_depot_path = map(quotate, added_depot_path)
-
- where = "p4 where " + " ".join(added_depot_path)
- added = run(where, r'(.*)', r'.*')
- added = map(split_perforce_parts, added)
-
- extras = []
-
- # Python 2.3 -- still default on Mac OS X -- does not have set()
- # Make dict's here to support the "in" operations below
- have = dict().fromkeys(have, 1)
- added = dict().fromkeys(added, 1)
-
- for file in files:
- if not file in have:
- if not file in added:
- extras.append(file)
-
- if do_exclude:
- extras = filter(filter_excludes, extras)
-
- for s in extras:
- print s.replace(" ", "\\ ")
-
-except PerforceError, e:
- sys.exit(2)
-