Home | History | Annotate | Download | only in gyp
      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 
      9 import glob
     10 import optparse
     11 import os
     12 import sys
     13 
     14 from util import build_utils
     15 
     16 def 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 
     51 if __name__ == '__main__':
     52   sys.exit(main())
     53 
     54