Home | History | Annotate | Download | only in tools
      1 #!/usr/bin/env python
      2 
      3 import re
      4 import sys
      5 
      6 def extract_config(f):
      7     conf_patt = re.compile('# Configurations')
      8     split_patt = re.compile('#={69}')
      9     var_patt = re.compile('libbcc_([A-Z_]+)\\s*:=\\s*([01])')
     10 
     11     STATE_PRE_CONFIG = 0
     12     STATE_FOUND_CONFIG = 1
     13     STATE_IN_CONFIG = 2
     14 
     15     state = STATE_PRE_CONFIG
     16 
     17     for line in f:
     18         if state == STATE_PRE_CONFIG:
     19             if conf_patt.match(line.strip()):
     20                 state = STATE_FOUND_CONFIG
     21 
     22         elif state == STATE_FOUND_CONFIG:
     23             if split_patt.match(line.strip()):
     24                 # Start reading the configuration
     25                 print '/* BEGIN USER CONFIG */'
     26                 state = STATE_IN_CONFIG
     27 
     28         elif state == STATE_IN_CONFIG:
     29             match = var_patt.match(line.strip())
     30             if match:
     31                 print '#define', match.group(1), match.group(2)
     32 
     33             elif split_patt.match(line.strip()):
     34                 # Stop reading the configuration
     35                 print '/* END USER CONFIG */'
     36                 break
     37 
     38 def main():
     39     if len(sys.argv) != 1:
     40         print >> sys.stderr, 'USAGE:', sys.argv[0]
     41         sys.exit(1)
     42 
     43     extract_config(sys.stdin)
     44 
     45 
     46 if __name__ == '__main__':
     47     main()
     48