tools/gen-components
author Rich Burridge <rich.burridge@oracle.com>
Tue, 13 Nov 2012 08:19:05 -0800
changeset 1048 e82fa02a4d16
child 1053 accc15fa8762
permissions -rwxr-xr-x
15863968 Auto-generation of Userland gate list - Phase 1.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1048
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     2
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     4
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     8
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    13
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    19
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    21
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    22
# Copyright (c) 2012, Oracle and/or it's affiliates.  All rights reserved.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    23
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    24
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    25
# gen_components.py
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    26
# A simple program to generate (on stdout) the component.html web page 
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    27
# found at: http://userland.us.oracle.com/components.html
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    28
#
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    29
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    30
import getopt
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    31
import os
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    32
import sys
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    33
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    34
debug = False
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    35
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    36
# Initial HTML for the generated web page.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    37
preamble = """
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    38
<html>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    39
<head>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    40
    <style type='text/css' media='screen'>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    41
        @import '/css/demo_table.css';
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    42
        @import '/css/ColVis.css';
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    43
        @import '/css/ColReorder.css';
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    44
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    45
            tr.even:hover,  tr.even:hover td.sorting_1 ,
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    46
            tr.odd:hover,  tr.odd:hover td.sorting_1 {
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    47
                            background-color: gold;
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    48
            }
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    49
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    50
    </style>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    51
    <script type='text/javascript' src='js/jquery.js'></script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    52
    <script type='text/javascript' src='js/jquery.dataTables.js'></script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    53
    <script type='text/javascript' src='js/ColReorder.js'></script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    54
    <script type='text/javascript' src='js/ColVis.js'></script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    55
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    56
    <script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    57
        $(document).ready(function() {
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    58
            $('#components').dataTable({
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    59
                "sDom": 'C<"clear">Rlfrtip',
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    60
                bPaginate: true,
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    61
                bFilter: true,
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    62
                bSort: true,
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    63
                iDisplayLength: -1,
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    64
                aLengthMenu: [ [ 10, 50, -1], [ 10, 50, 'All'] ]
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    65
            });
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    66
        });
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    67
    </script>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    68
</head>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    69
<body>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    70
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    71
<h1>Userland Components</h1>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    72
<p>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    73
<table align='center' id='components'>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    74
<thead>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    75
<tr>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    76
    <th>Component</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    77
    <th>Version</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    78
    <th>Gate Path</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    79
    <th>Package(s)</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    80
    <th>ARC Case(s)</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    81
    <th>License(s)</th>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    82
</tr>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    83
</thead>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    84
<tbody>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    85
"""
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    86
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    87
# Final HTML for the generated web page.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    88
postamble = """
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    89
</tr>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    90
</tbody>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    91
</table>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    92
</body>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    93
</html>
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    94
"""
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    95
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    96
# Return a sorted list of the directories containing one or more .p5m files.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    97
def find_p5m_dirs(workspace):
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    98
    p5m_dirs = []
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    99
    for dir, _, files in os.walk(workspace + "/components"):
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   100
        for file in files:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   101
            if file.endswith(".p5m"):
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   102
                p5m_dirs.append(dir)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   103
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   104
    return sorted(list(set(p5m_dirs)))
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   105
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   106
# Write out the initial HTML for the components.html web page.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   107
def write_preamble():
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   108
    print preamble
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   109
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   110
# Generate an HTML table entry for all the information for the component
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   111
# in the given directory. This generates a file called 'component-report'
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   112
# under the components build directory.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   113
def gen_reports(workspace, component_dir):
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   114
    if debug:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   115
        print >> sys.stderr, "Processing %s" % component_dir
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   116
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   117
    makefiles = "-f Makefile -f %s/make-rules/component-report" % workspace
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   118
    targets = "clean component-hook"
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   119
    cmd = "cd %s; gmake COMPONENT_HOOK='gmake %s component-report' %s" % \
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   120
        (component_dir, makefiles, targets)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   121
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   122
    lines = os.popen(cmd).readlines()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   123
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   124
# Collect all the .../build/component-report files and write them to stdout.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   125
def write_reports(p5m_dirs):
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   126
    for p5m_dir in p5m_dirs:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   127
        report = "%s/build/component-report" % p5m_dir
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   128
        if debug:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   129
            print >> sys.stderr, "Reading %s" % report
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   130
        try:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   131
            fin = open(report, 'r')
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   132
            lines = fin.readlines()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   133
            fin.close()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   134
            sys.stdout.writelines(lines)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   135
        except:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   136
            if debug:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   137
                print >> sys.stderr, "Unable to read: %s" % report
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   138
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   139
# Write out the final HTML for the components.html web page.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   140
def write_postamble():
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   141
    print postamble
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   142
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   143
# Write out a usage message showing valid options to this script.
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   144
def usage():
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   145
    print  >> sys.stderr, \
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   146
"""
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   147
Usage: 
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   148
      update_man_pages.py [OPTION...]
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   149
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   150
-d, --debug
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   151
      Turn on debugging
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   152
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   153
-w --workspace
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   154
      Location of the Userland workspace
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   155
"""
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   156
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   157
    sys.exit(1)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   158
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   159
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   160
if __name__ == "__main__":
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   161
    workspace = os.getenv('WS_TOP')
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   162
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   163
    try:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   164
        opts, args = getopt.getopt(sys.argv[1:], "dw:",
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   165
            [ "debug", "workspace=" ])
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   166
    except getopt.GetoptError, err:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   167
        print str(err)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   168
        usage()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   169
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   170
    for opt, arg in opts:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   171
        if opt in [ "-w", "--workspace" ]:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   172
            workspace = arg
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   173
        elif opt in [ "-d", "--debug" ]:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   174
            debug = True
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   175
        else:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   176
            assert False, "unknown option"
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   177
 
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   178
    write_preamble()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   179
    p5m_dirs = find_p5m_dirs(workspace)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   180
    for p5m_dir in p5m_dirs:
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   181
        gen_reports(workspace, p5m_dir)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   182
    write_reports(p5m_dirs)
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   183
    write_postamble()
e82fa02a4d16 15863968 Auto-generation of Userland gate list - Phase 1.
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   184
    sys.exit(0)