[Qa-jenkins-scm] [jenkins.debian.net] 07/08: reproducible debian: add mustache script for main page navigation

Holger Levsen holger at layer-acht.org
Tue Jul 5 15:25:11 UTC 2016


This is an automated email from the git hooks/post-receive script.

holger pushed a commit to branch master
in repository jenkins.debian.net.

commit 55af141af8e0e504bdf8489070861f061095448b
Author: Valerie R Young <spectranaut at riseup.net>
Date:   Thu Jun 30 08:38:20 2016 -0400

    reproducible debian: add mustache script for main page navigation
    
    Signed-off-by: Mattia Rizzolo <mattia at debian.org>
    Signed-off-by: Holger Levsen <holger at layer-acht.org>
---
 bin/reproducible_common.py             | 132 +++++----------------------------
 bin/templates/main_navigation.mustache |  88 ++++++++++++++++++++++
 2 files changed, 106 insertions(+), 114 deletions(-)

diff --git a/bin/reproducible_common.py b/bin/reproducible_common.py
index d207777..2340644 100755
--- a/bin/reproducible_common.py
+++ b/bin/reproducible_common.py
@@ -147,7 +147,10 @@ default_page_footer_template = renderer.load_template(
     TEMPLATE_PATH + '/default_page_footer')
 pkg_legend_template = renderer.load_template(
     TEMPLATE_PATH + '/pkg_symbol_legend')
-
+project_links_template = renderer.load_template(
+    os.path.join(TEMPLATE_PATH, 'project_links'))
+main_navigation_template = renderer.load_template(
+    os.path.join(TEMPLATE_PATH, 'main_navigation'))
 
 html_header = Template("""<!DOCTYPE html>
 <html>
@@ -177,88 +180,6 @@ def create_default_page_footer(date):
             'jenkins_url': JENKINS_URL,
         })
 
-html_head_page = Template((tab*2).join(("""
-<header class="head">
-  <h2>$page_title</h2>
-  <ul class=\"menu\">
-    <li>$suite/$arch:<ul class="children">
-     <li>Notes:<ul class="children">
-      <li><a href="/debian/$suite/$arch/index_notes.html">packages with notes</a></li>
-      <li><a href="/debian/$suite/$arch/index_no_notes.html">packages without notes</a></li>
-     </ul></li>
-     <li>Package states:<ul class="children">
-      <li>
-        <a href="/debian/$suite/$arch/index_reproducible.html" target="_parent">
-          <img src="/static/weather-clear.png" alt="reproducible icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_FTBR.html" target="_parent">
-          <img src="/static/weather-showers-scattered.png" alt="FTBR icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_FTBFS.html" target="_parent">
-          <img src="/static/weather-storm.png" alt="FTBFS icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_depwait.html" target="_parent">
-          <img src="/static/weather-snow.png" alt="depwait icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_not_for_us.html" target="_parent">
-          <img src="/static/weather-few-clouds-night.png" alt="not_for_us icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_404.html" target="_parent">
-          <img src="/static/weather-severe-alert.png" alt="404 icon" />
-        </a>
-        <a href="/debian/$suite/$arch/index_blacklisted.html" target="_parent">
-          <img src="/static/error.png" alt="blacklisted icon" />
-        </a>
-      </li>
-     </ul></li>
-     $link_pkgsets
-     <li>Recently tested:<ul class="children">
-      <li><a href="/debian/$suite/$arch/index_last_24h.html">packages tested in the last 24h</a></li>
-      <li><a href="/debian/$suite/$arch/index_last_48h.html">packages tested in the last 48h</a></li>
-     </ul></li>
-    <li><a href="/debian/$suite/$arch/index_all_abc.html">all tested packages (sorted alphabetically)</a></li>
-    </ul></li>
-    <li>Architectures:<ul class="children">
-     $link_archs
-     <li><a href="/debian/index_${arch}_scheduled.html">currently scheduled</a></li>
-    </ul></li>
-    <li>Suites:<ul class="children">
-     $link_suites
-     <li><a href="/debian/$suite/index_dd-list.html">maintainers of unreproducible packages</a></li>
-    </ul></li>
-    <li><a href="%s">Debian dashboard</a>
-    <ul class="children">
-     <li><a href="/debian/index_issues.html">issues</a></li>
-     <li><a href="/debian/index_repositories.html">repositories overview</a></li>
-     <li><a href="/debian/index_notify.html" title="notify icon">⚑ packages with enabled notifications</a></li>
-     <li><a href="/debian/index_performance.html">performance stats</a></li>
-     <li><a href="/debian/index_variations.html">variations tested</a></li>
-     <li><a href="/debian/index_breakages.html">broken pieces</a></li>
-    </ul></li>
-  </ul>
-$project_links
-</header><div class="mainbody">""" % DEBIAN_URL ).splitlines(True)))
-
-html_project_links = Template((tab*2).join("""
-    <ul class="reproducible-links">
-        <li>Reproducible Builds projects links
-         <ul class="children"><li>
-            <a href="https://Reproducible-builds.org">Reproducible-builds.org</a><br />
-            Reproducible-builds.org - <a href="https://Reproducible-builds.org/docs/">HowTo</a><br />
-            Reproducible Debian - <a href="https://wiki.debian.org/ReproducibleBuilds">Wiki</a><br />
-            Reproducible builds <a href="https://reproducible.alioth.debian.org/blog/">weekly news</a><br />
-            <a href="https://reproducible-builds.org/specs/source-date-epoch/">SOURCE_DATE_EPOCH specification</a><br />
-            </li><li>
-            Reproducible <a href="https://tests.reproducible-builds.org/archlinux/">Arch Linux</a> /
-            <a href="https://tests.reproducible-builds.org/coreboot/">coreboot</a> /
-            <a href="https://tests.reproducible-builds.org/fedora/">Fedora</a> /
-            <a href="https://tests.reproducible-builds.org/freebsd/">FreeBSD</a> /
-            <a href="https://tests.reproducible-builds.org/netbsd/">NetBSD</a> /
-            <a href="https://tests.reproducible-builds.org/openwrt/">OpenWrt</a>
-        </li></ul></li>
-    </ul>
-""".splitlines(True)))
-
 url2html = re.compile(r'((mailto\:|((ht|f)tps?)\://|file\:///){1}\S+)')
 
 # filter used on the index_FTBFS pages and for the reproducible.json
@@ -325,25 +246,19 @@ def convert_into_hms_string(duration):
     return duration
 
 
-def _gen_pkg_sets_link(suite, arch):
-    html = ''
-    if suite != 'experimental':
-            html = '<li><a href="/debian/' + suite + '/' + arch + '/index_pkg_sets.html">package sets</a></li>'
-    return html
-
-def _gen_arch_links(suite, arch):
-    html = '<li>'
-    for a in ARCHS:
-        html += ' <a href="/debian/' + suite + '/index_suite_' + a + '_stats.html\">' + a + '</a>  '
-    html += '</li>'
-    return html
-
-def _gen_suite_links(suite, arch):
-    html = '<li>'
-    for s in SUITES:
-        html += ' <a href="/debian/' + s + '/index_suite_' + arch + '_stats.html">' + s + '</a>  '
-    html += '</li>'
-    return html
+# See bash equivelent: reproducible_common.sh's "write_page_header()"
+def create_main_navigation(page_title, suite, arch):
+    context = {
+        'page_title': page_title,
+        'suite': suite,
+        'arch': arch,
+        'project_links_html': renderer.render(project_links_template),
+        'experimental': False,
+        'suite_list': [{'s': s} for s in SUITES],
+        'arch_list': [{'a': a} for a in ARCHS],
+        'debian_url': DEBIAN_URL,
+    }
+    return renderer.render(main_navigation_template, context)
 
 
 def write_html_page(title, body, destfile, suite=defaultsuite, arch=defaultarch, noheader=False, style_note=False, noendpage=False, packages=False, refresh_every=None):
@@ -355,19 +270,8 @@ def write_html_page(title, body, destfile, suite=defaultsuite, arch=defaultarch,
             page_title=title,
             meta_refresh=meta_refresh)
     if not noheader:
-        link_archs = _gen_arch_links(suite, arch)
-        link_suites = _gen_suite_links(suite, arch)
-        link_pkgsets = _gen_pkg_sets_link(suite, arch)
-        project_links=html_project_links.substitute()
+        html += create_main_navigation(title, suite, arch)
 
-        html += html_head_page.substitute(
-            page_title=title,
-            suite=suite,
-            arch=arch,
-            link_archs=link_archs,
-            link_suites=link_suites,
-            link_pkgsets=link_pkgsets,
-            project_links=project_links)
     html += body
     if style_note:
         html += renderer.render(pkg_legend_template, {})
diff --git a/bin/templates/main_navigation.mustache b/bin/templates/main_navigation.mustache
new file mode 100644
index 0000000..1a8a60a
--- /dev/null
+++ b/bin/templates/main_navigation.mustache
@@ -0,0 +1,88 @@
+<header class="head">
+  <h2>{{page_title}}</h2>
+  <ul class="menu">
+    <li>{{suite}}/{{arch}}:<ul class="children">
+      <li>Notes:<ul class="children">
+        <li><a href="/debian/{{suite}}/{{arch}}/index_notes.html">
+          packages with notes
+        </a></li>
+          <li><a href="/debian/{{suite}}/{{arch}}/index_no_notes.html">
+             packages without notes
+          </a></li>
+      </ul></li>
+      <li>Package states:<ul class="children">
+        <li>
+          <a href="/debian/{{suite}}/{{arch}}/index_reproducible.html" target="_parent">
+            <img src="/static/weather-clear.png" alt="reproducible icon" />
+          </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_FTBR.html" target="_parent">
+            <img src="/static/weather-showers-scattered.png" alt="FTBR icon" />
+          </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_FTBFS.html" target="_parent">
+            <img src="/static/weather-storm.png" alt="FTBFS icon" />
+          </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_depwait.html" target="_parent">
+            <img src="/static/weather-snow.png" alt="depwait icon" />
+          </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_not_for_us.html" target="_parent">
+            <img src="/static/weather-few-clouds-night.png" alt="not_for_us icon" />
+              </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_404.html" target="_parent">
+            <img src="/static/weather-severe-alert.png" alt="404 icon" />
+          </a>
+          <a href="/debian/{{suite}}/{{arch}}/index_blacklisted.html" target="_parent">
+            <img src="/static/error.png" alt="blacklisted icon" />
+          </a>
+        </li>
+      </ul></li>
+      {{^experimental}}
+      <li>
+        <a href="/debian/{{suite}}/{{arch}}/index_pkg_sets.html">
+          package sets
+        </a>
+      </li>
+      {{/experimental}}
+      <li>Recently tested:<ul class="children">
+        <li><a href="/debian/{{suite}}/{{arch}}/index_last_24h.html">
+            packages tested in the last 24h
+        </a></li>
+        <li><a href="/debian/{{suite}}/{{arch}}/index_last_48h.html">
+            packages tested in the last 48h
+        </a></li>
+      </ul></li>
+      <li><a href="/debian/{{suite}}/{{arch}}/index_all_abc.html">
+          all tested packages (sorted alphabetically)
+      </a></li>
+    </ul></li>
+    <li>Architectures:<ul class="children">
+      <li>
+        {{#arch_list}}
+        <a href="/debian/{{suite}}/index_suite_{{a}}_stats.html">{{a}}</a>
+        {{/arch_list}}
+        </li>
+      <li><a href="/debian/index_{{arch}}_scheduled.html">currently scheduled</a></li>
+    </ul></li>
+    <li>Suites:<ul class="children">
+      <li>
+        {{#suite_list}}
+        <a href="/debian/{{s}}/index_suite_{{arch}}_stats.html">{{s}}</a>
+        {{/suite_list}}
+      </li>
+      <li><a href="/debian/{{suite}}/index_dd-list.html">
+          maintainers of unreproducible packages
+      </a></li>
+    </ul></li>
+    <li><a href="{{debian_url}}">Debian dashboard</a>
+      <ul class="children">
+        <li><a href="/debian/index_issues.html">issues</a></li>
+        <li><a href="/debian/index_repositories.html">
+            repositories overview</a></li>
+        <li><a href="/debian/index_notify.html" title="notify icon">
+            ⚑ packages with enabled notifications</a></li>
+        <li><a href="/debian/index_performance.html">performance stats</a></li>
+        <li><a href="/debian/index_variations.html">variations tested</a></li>
+        <li><a href="/debian/index_breakages.html">broken pieces</a></li>
+    </ul></li>
+  </ul>
+  {{{project_links_html}}}
+</header>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/qa/jenkins.debian.net.git



More information about the Qa-jenkins-scm mailing list