+# files to exclude
+exclude = ['log.*', '.#*', '*~', '*.orig', '*.sw?', '.bigfiles', 'sources']
+
+# read .gitignore, distfiles files are filled there
+if os.path.isfile('%s/.gitignore' % dir):
+ f = open('%s/.gitignore' % dir , 'r')
+ for l in f.readlines():
+ exclude.append(l.rstrip())
+
+def git_entries(file):
+ p = subprocess.Popen(['git', 'ls-files'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ (out, err) = p.communicate(None)
+ p.wait()
+ if err:
+ print >> sys.stderr, "%s: %s" % (sys.argv[0], err)
+ sys.exit(1)
+ return out.split('\n')
+gitfiles = git_entries(dir)
+
+def blacklisted(file):
+ if file == os.path.basename(spec):
+ return True
+
+ if file in [ '.', '..', '.git', 'CVS', 'TODO']:
+ return True
+
+ if os.path.isdir(file):
+ return True
+
+ for pat in exclude:
+ if fnmatch.fnmatch(file, pat):
+ return True
+
+ return False
+