1#!/usr/bin/env python
2# Copyright 2014 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""Delete files in directories matching a pattern.
7"""
8
9import glob
10import optparse
11import os
12import sys
13
14from util import build_utils
15
16def main():
17  parser = optparse.OptionParser()
18  parser.add_option(
19      '--pattern',
20      help='Pattern for matching Files to delete.')
21  parser.add_option(
22      '--keep',
23      help='Files to keep even if they matches the pattern.')
24  parser.add_option(
25      '--stamp',
26      help='Path to touch on success')
27
28  options, args = parser.parse_args()
29
30  if not options.pattern or not args:
31    print 'No --pattern or target directories given'
32    return
33
34  for target_dir in args:
35    target_pattern = os.path.join(target_dir, options.pattern)
36    matching_files = glob.glob(target_pattern)
37
38    keep_pattern = os.path.join(target_dir, options.keep)
39    files_to_keep = glob.glob(keep_pattern)
40
41    for target_file in matching_files:
42      if target_file in files_to_keep:
43        continue
44
45      if os.path.isfile(target_file):
46        os.remove(target_file)
47
48  if options.stamp:
49    build_utils.Touch(options.stamp)
50
51if __name__ == '__main__':
52  sys.exit(main())
53
54