Put all informations about targets, including state (active or orphan) and maintainers, in boards.cfg; remove MAINTAINERS; adjust the build system accordingly. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>master
parent
7bcee5f7ee
commit
27af930e9a
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,132 @@ |
|||||||
|
#! /usr/bin/python |
||||||
|
######################################################################## |
||||||
|
# |
||||||
|
# reorder and reformat a file in columns |
||||||
|
# |
||||||
|
# this utility takes lines from its standard input and reproduces them, |
||||||
|
# partially reordered and reformatted, on its standard output. |
||||||
|
# |
||||||
|
# It has the same effect as a 'sort | column -t', with the exception |
||||||
|
# that empty lines, as well as lines which start with a '#' sign, are |
||||||
|
# not affected, i.e. they keep their position and formatting, and act |
||||||
|
# as separators, i.e. the parts before and after them are each sorted |
||||||
|
# separately (but overall field widths are computed across the whole |
||||||
|
# input). |
||||||
|
# |
||||||
|
# Options: |
||||||
|
# -i: |
||||||
|
# --ignore-case: |
||||||
|
# Do not consider case when sorting. |
||||||
|
# -d: |
||||||
|
# --default: |
||||||
|
# What to chage empty fields to. |
||||||
|
# -s <N>: |
||||||
|
# --split=<N>: |
||||||
|
# Treat only the first N whitespace sequences as separators. |
||||||
|
# line content after the Nth separator will count as only one |
||||||
|
# field even if it contains whitespace. |
||||||
|
# Example : '-s 2' causes input 'a b c d e' to be split into |
||||||
|
# three fields, 'a', 'b', and 'c d e'. |
||||||
|
# |
||||||
|
# boards.cfg requires -ids 6. |
||||||
|
# |
||||||
|
######################################################################## |
||||||
|
|
||||||
|
import sys, getopt, locale |
||||||
|
|
||||||
|
# ensure we sort using the C locale. |
||||||
|
|
||||||
|
locale.setlocale(locale.LC_ALL, 'C') |
||||||
|
|
||||||
|
# check options |
||||||
|
|
||||||
|
maxsplit = 0 |
||||||
|
ignore_case = 0 |
||||||
|
default_field ='' |
||||||
|
|
||||||
|
try: |
||||||
|
opts, args = getopt.getopt(sys.argv[1:], "id:s:", |
||||||
|
["ignore-case","default","split="]) |
||||||
|
except getopt.GetoptError as err: |
||||||
|
print str(err) # will print something like "option -a not recognized" |
||||||
|
sys.exit(2) |
||||||
|
|
||||||
|
for o, a in opts: |
||||||
|
if o in ("-s", "--split"): |
||||||
|
maxsplit = eval(a) |
||||||
|
elif o in ("-i", "--ignore-case"): |
||||||
|
ignore_case = 1 |
||||||
|
elif o in ("-d", "--default"): |
||||||
|
default_field = a |
||||||
|
else: |
||||||
|
assert False, "unhandled option" |
||||||
|
|
||||||
|
# collect all lines from standard input and, for the ones which must be |
||||||
|
# reformatted and sorted, count their fields and compute each field's |
||||||
|
# maximum size |
||||||
|
|
||||||
|
input_lines = [] |
||||||
|
field_width = [] |
||||||
|
|
||||||
|
for line in sys.stdin: |
||||||
|
# remove final end of line |
||||||
|
input_line = line.strip('\n') |
||||||
|
if (len(input_line)>0) and (input_line[0] != '#'): |
||||||
|
# sortable line: split into fields |
||||||
|
fields = input_line.split(None,maxsplit) |
||||||
|
# if there are new fields, top up field_widths |
||||||
|
for f in range(len(field_width), len(fields)): |
||||||
|
field_width.append(0) |
||||||
|
# compute the maximum witdh of each field |
||||||
|
for f in range(len(fields)): |
||||||
|
field_width[f] = max(field_width[f],len(fields[f])) |
||||||
|
# collect the line for next stage |
||||||
|
input_lines.append(input_line) |
||||||
|
|
||||||
|
# run through collected input lines, collect the ones which must be |
||||||
|
# reformatted and sorted, and whenever a non-reformattable, non-sortable |
||||||
|
# line is met, sort the collected lines before it and append them to the |
||||||
|
# output lines, then add the non-sortable line too. |
||||||
|
|
||||||
|
output_lines = [] |
||||||
|
sortable_lines = [] |
||||||
|
for input_line in input_lines: |
||||||
|
if (len(input_line)>0) and (input_line[0] != '#'): |
||||||
|
# this line should be reformatted and sorted |
||||||
|
input_fields = input_line.split(None,maxsplit) |
||||||
|
output_fields = []; |
||||||
|
# reformat each field to this field's column width |
||||||
|
for f in range(len(input_fields)): |
||||||
|
output_field = input_fields[f]; |
||||||
|
output_fields.append(output_field.ljust(field_width[f])) |
||||||
|
# any missing field is set to default if it exists |
||||||
|
if default_field != '': |
||||||
|
for f in range(len(input_fields),len(field_width)): |
||||||
|
output_fields.append(default_field.ljust(field_width[f])) |
||||||
|
# join fields using two spaces, like column -t would |
||||||
|
output_line = ' '.join(output_fields); |
||||||
|
# collect line for later |
||||||
|
sortable_lines.append(output_line) |
||||||
|
else: |
||||||
|
# this line is non-sortable |
||||||
|
# sort collected sortable lines |
||||||
|
if ignore_case!=0: |
||||||
|
sortable_lines.sort(key=lambda x: str.lower(locale.strxfrm(x))) |
||||||
|
else: |
||||||
|
sortable_lines.sort(key=lambda x: locale.strxfrm(x)) |
||||||
|
# append sortable lines to the final output |
||||||
|
output_lines.extend(sortable_lines) |
||||||
|
sortable_lines = [] |
||||||
|
# append non-sortable line to the final output |
||||||
|
output_lines.append(input_line) |
||||||
|
# maybe we had sortable lines pending, so append them to the final output |
||||||
|
if ignore_case!=0: |
||||||
|
sortable_lines.sort(key=lambda x: str.lower(locale.strxfrm(x))) |
||||||
|
else: |
||||||
|
sortable_lines.sort(key=lambda x: locale.strxfrm(x)) |
||||||
|
output_lines.extend(sortable_lines) |
||||||
|
|
||||||
|
# run through output lines and print them, except rightmost whitespace |
||||||
|
|
||||||
|
for output_line in output_lines: |
||||||
|
print output_line.rstrip() |
Loading…
Reference in new issue