Mercurial > public > ostc4
view Documentations/setGPLHeader.py @ 541:6fbf7cd391cb
Added default view selection and auto return to view to t3 visualization:
In previous version the ostc tried to applied the t7 default view selection to t3 view. As t3 has different views than t3, a new selection menu has been added to the custom view menu enabling the selection of the big font default view.
In parallel the auto return function has been adapted to use the new parameter.
author | Ideenmodellierer |
---|---|
date | Sat, 10 Oct 2020 18:34:10 +0200 |
parents | 6237372f76a4 |
children |
line wrap: on
line source
#! /usr/bin/env python3 from __future__ import print_function import os, sys, glob,re, codecs ############################################################################## OSTC4=os.getcwd() if not os.path.exists( os.path.join(OSTC4, 'Discovery') ): raise 'Wrong start directory...' ############################################################################## def walk(OSTC4): for dir in ['BootLoader', 'Common', 'Discovery', 'FontPack', 'Small_CPU']: # Make sure we have the top directory... if not os.path.exists( os.path.join(OSTC4, dir) ): raise 'Missing ' + dir # Then walk in all its existing source sub-directories... for sub in ['.', 'Inc', 'Src']: path = os.path.join(OSTC4, dir, sub) if not os.path.exists(path): continue print(path + ':') for file in sorted( glob.iglob( os.path.join(path, '*.[chs]') ) ): try: work(file) except Exception as e: raise RuntimeError('Cannot process ' + file + ':\n\t' + str(e)) ############################################################################## with open(os.path.join(OSTC4, 'Documentations', 'GPL_template.txt')) as f: template = f.read() def work(file): # Unclear what is done if encoding is not yet UTF-8... with open(file, 'rt', encoding='cp1252') as f: lines = f.read().splitlines() # Set defaults kw = {} kw['file'] = file.replace(OSTC4+'/', '') kw['brief'] = '' kw['date'] = '2018' # Try to gather info from existing header, if any: for line in lines: # Skip files that already have a GNU license: if 'GNU General Public License' in line: print('(done)\t' + file) return get(line, 'brief', kw) get(line, 'date', kw) # Replace kw in header header = template for k,v in kw.items(): header = header.replace('$'+k, v) # Overwrite resulting file, normalizing EOL with open(file, 'wt', encoding='utf-8') as f: for line in header.splitlines(): f.write(line.rstrip() + '\n') for line in lines: f.write(line.rstrip() + '\n') print('+\t' + file) ############################################################################## def get(line, word, kw): m = re.search('(@|\\\\)' + word + '\s*(.*)', line) if m: kw[word] = m.group(2) ############################################################################## walk(OSTC4)