ACK: [kteam-tools] gen-sru-announce: Add HTML output mode

Kleber Souza kleber.souza at canonical.com
Thu Aug 30 12:38:14 UTC 2018


On 08/23/18 21:44, Stefan Bader wrote:
> Add an optional --html argument which switches output to an HTML
> table which contains the dates of the current and next SRU cycle.
> Information about kernel versions is suppressed in that mode.
> 
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>

> ---
>  stable/gen-sru-announce | 60 ++++++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 47 insertions(+), 13 deletions(-)
> 
> diff --git a/stable/gen-sru-announce b/stable/gen-sru-announce
> index 5fd9143..8bb69c9 100755
> --- a/stable/gen-sru-announce
> +++ b/stable/gen-sru-announce
> @@ -56,17 +56,26 @@ class TheApp(object):
>          print('         %s   Release to -updates.' % ((sd + timedelta(days=24)).strftime('%d-%b')))
>          print('')
>  
> -    # main
> +    # Print the cycle dates as HTML table
>      #
> -    def main(s, args):
> -        retval = 0
> -
> -        sd = s.sd(args.date)
> -        print('To: Kernel SRU Announcements <kernel-sru-announce at lists.canonical.com>, Ubuntu Kernel Team <kernel-team at lists.ubuntu.com>')
> -        print('Subject: A new SRU cycle started...')
> -        s.print_cycle(sd)
> +    def print_cycle_html(s, sd):
> +        sd = sd - timedelta(days=3)
> +        pd = sd - timedelta(days=2)
> +        ed = sd + timedelta(days=22)
>  
> -        print('')
> +        print('        <td width="50%">')
> +        print('            <table width="100%"> <!-- -->')
> +        print('                <tr> <td colspan="4"><h2>%s through %s<h2></td></tr>' % (sd.strftime('%d-%b'), ed.strftime('%d-%b')))
> +        print('                <tr> <td width="10%%"> </td>   <td width="10%%"><h3> </h3></td>   <td width="10%%"><h3>%s</h3></td>   <td><h3>Last day for kernel commits for this cycle</h3></td> </tr>' % (pd.strftime('%d-%b')))
> +        print('<tr> <td width="10%%"> </td>   <td width="10%%"><h3>%s</h3></td>   <td width="10%%"><h3>%s</h3></td>   <td><h3>Kernel prep week</h3></td>                           </tr>' % ((sd + timedelta(days=3)).strftime('%d-%b'), (sd + timedelta(days=8)).strftime('%d-%b')))
> +        print('<tr> <td width="10%%"> </td>   <td width="10%%"><h3>%s</h3></td>   <td width="10%%"><h3>%s</h3></td>   <td><h3>Bug verification & Regression testing</h3></td>      </tr>' % ((sd + timedelta(days=9)).strftime('%d-%b'), (sd + timedelta(days=21)).strftime('%d-%b')))
> +        print('<tr> <td width="10%%"> </td>   <td width="10%%"><h3> </h3></td>   <td width="10%%"><h3>%s</h3></td>   <td><h3>Release to -updates</h3></td>                        </tr>' % ((sd + timedelta(days=24)).strftime('%d-%b')))
> +        print('            </table>')
> +        print('        </td>')
> +
> +    # Print kernel versions
> +    #
> +    def print_kernel_versions(s):
>          cmd = "%s --no-devel --no-esm" % path.join(path.dirname(__file__), 'sru-cycle-kernel-versions')
>          try:
>              for line in Popen(cmd, shell=True, stdout=PIPE).stdout.readlines():
> @@ -74,8 +83,29 @@ class TheApp(object):
>          except:
>              raise ErrorExit('Failed calling %s for kernel versions.' % (cmd))
>  
> -        print('')
> -        s.print_cycle(sd + timedelta(days=21))
> +    # main
> +    #
> +    def main(s, args):
> +        retval = 0
> +
> +        sd = s.sd(args.date)
> +
> +        if args.html:
> +            print('<table border="0" width="100%"> <!-- -->')
> +            print('    <tr>')
> +            s.print_cycle_html(sd)
> +            s.print_cycle_html(sd + timedelta(days=21))
> +            print('    </tr>')
> +            print('</table>')
> +        else:
> +            print('To: Kernel SRU Announcements <kernel-sru-announce at lists.canonical.com>, '
> +                  'Ubuntu Kernel Team <kernel-team at lists.ubuntu.com>')
> +            print('Subject: A new SRU cycle started...')
> +            s.print_cycle(sd)
> +            print('')
> +            s.print_kernel_versions()
> +            print('')
> +            s.print_cycle(sd + timedelta(days=21))
>  
>          return retval
>  
> @@ -85,12 +115,16 @@ if __name__ == '__main__':
>      # Command line argument setup and initial processing
>      #
>      app_description = '''
> -    Generate the text for the email announcing the new SRU cycle dates amd kernel
> -    versions. The date which has to be given is the Monday which start the new cycle.
> +    Generates the text for the email announcing the new SRU cycle dates and kernel
> +    versions. Using the alternate HTML mode will produce an HTML table which only
> +    contains the cycle dates in the format used on kernel.ubuntu.com
> +
> +    The date which has to be given is the Monday which starts the new cycle.
>      '''
>      app_epilog = '''
>      '''
>      parser = ArgumentParser(description=app_description, epilog=app_epilog, formatter_class=RawDescriptionHelpFormatter)
> +    parser.add_argument('--html', action='store_true', default=False, help='Generate output suitable to be embedded into a web page (table)')
>      parser.add_argument('date', metavar='<SRU cycle start date>', type=str, help='Date format: YYYY.MM.DD)')
>      args = parser.parse_args()
>  
> 





More information about the kernel-team mailing list