annotate Documentations/setGPLHeader.py @ 496:9623f166b0c0

Bugfix display of disabled screen. It is possible to select a screen as default which is in parallel disabled in the selection view. To avoid this the enable / disable state is not also checked when entering dive mode. The check function was depending on an ACTION. The functionality has been changed to allow the function call without ACTION. Changed setting of compass circle position from constant position to variable This was needed to reuse the same function in several views with different compass position Added new views Navigation and Depth data Both views were basically already available but the idea behind the layout is to combine all information needed for navigation dives (compass + timer) in one view. The classic maxdepth view just showed the maxdepth with a black box on the right side. this box is now used for display of average depth (shown in classic view Stopwatch) Minor changes in compass paint function to improve code readability Use same Y offset for all views While switching across the views some number were shown ~20 pixel higher than others. This was caused by the usage of the line selection which works for some fonts but not for all => set linenumber to 0 for all views
author Ideenmodellierer
date Mon, 24 Aug 2020 19:53:27 +0200
parents 6237372f76a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
1 #! /usr/bin/env python3
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
2
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
3 from __future__ import print_function
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
4 import os, sys, glob,re, codecs
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
5
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
6 ##############################################################################
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
7
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
8 OSTC4=os.getcwd()
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
9 if not os.path.exists( os.path.join(OSTC4, 'Discovery') ):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
10 raise 'Wrong start directory...'
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
11
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
12 ##############################################################################
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
13
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
14 def walk(OSTC4):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
15 for dir in ['BootLoader', 'Common', 'Discovery', 'FontPack', 'Small_CPU']:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
16 # Make sure we have the top directory...
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
17 if not os.path.exists( os.path.join(OSTC4, dir) ):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
18 raise 'Missing ' + dir
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
19
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
20 # Then walk in all its existing source sub-directories...
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
21 for sub in ['.', 'Inc', 'Src']:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
22 path = os.path.join(OSTC4, dir, sub)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
23 if not os.path.exists(path):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
24 continue
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
25 print(path + ':')
35
6237372f76a4 ... more GPL License and general cleanups
jDG@sauge
parents: 29
diff changeset
26 for file in sorted( glob.iglob( os.path.join(path, '*.[chs]') ) ):
29
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
27 try:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
28 work(file)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
29 except Exception as e:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
30 raise RuntimeError('Cannot process ' + file + ':\n\t' + str(e))
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
31
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
32 ##############################################################################
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
33
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
34 with open(os.path.join(OSTC4, 'Documentations', 'GPL_template.txt')) as f:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
35 template = f.read()
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
36
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
37 def work(file):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
38
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
39 # Unclear what is done if encoding is not yet UTF-8...
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
40 with open(file, 'rt', encoding='cp1252') as f:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
41 lines = f.read().splitlines()
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
42
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
43 # Set defaults
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
44 kw = {}
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
45 kw['file'] = file.replace(OSTC4+'/', '')
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
46 kw['brief'] = ''
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
47 kw['date'] = '2018'
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
48
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
49 # Try to gather info from existing header, if any:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
50 for line in lines:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
51 # Skip files that already have a GNU license:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
52 if 'GNU General Public License' in line:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
53 print('(done)\t' + file)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
54 return
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
55
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
56 get(line, 'brief', kw)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
57 get(line, 'date', kw)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
58
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
59 # Replace kw in header
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
60 header = template
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
61 for k,v in kw.items():
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
62 header = header.replace('$'+k, v)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
63
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
64 # Overwrite resulting file, normalizing EOL
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
65 with open(file, 'wt', encoding='utf-8') as f:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
66 for line in header.splitlines():
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
67 f.write(line.rstrip() + '\n')
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
68 for line in lines:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
69 f.write(line.rstrip() + '\n')
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
70 print('+\t' + file)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
71
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
72 ##############################################################################
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
73
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
74 def get(line, word, kw):
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
75 m = re.search('(@|\\\\)' + word + '\s*(.*)', line)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
76 if m:
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
77 kw[word] = m.group(2)
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
78
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
79 ##############################################################################
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
80
3a98f9e7ca58 ADD script to set GPL headers
jDG
parents:
diff changeset
81 walk(OSTC4)