From e9a7c61175caf1e7fca688fe69443b509335a2af Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 14 Sep 2024 13:18:14 +0200 Subject: generating first statistics page with M4 --- bin/check | 9 +- bin/genhtml | 15 + bin/setup | 8 + bin/update | 4 + conf/default.conf | 3 + html/static/archnav32.png | Bin 0 -> 5508 bytes html/static/archweb.css | 876 ++++++++++++++++++++++++++++++++++++++++++++++ html/static/favicon.ico | Bin 0 -> 501 bytes templates/footer.m4 | 31 ++ templates/header.m4 | 26 ++ templates/main.m4 | 659 ---------------------------------- templates/summary.m4 | 17 + templates/table.m4 | 658 ++++++++++++++++++++++++++++++++++ 13 files changed, 1644 insertions(+), 662 deletions(-) create mode 100755 bin/genhtml create mode 100644 html/static/archnav32.png create mode 100644 html/static/archweb.css create mode 100644 html/static/favicon.ico create mode 100644 templates/footer.m4 create mode 100644 templates/header.m4 delete mode 100644 templates/main.m4 create mode 100644 templates/summary.m4 create mode 100644 templates/table.m4 diff --git a/bin/check b/bin/check index 43a047c..f711bc6 100755 --- a/bin/check +++ b/bin/check @@ -21,15 +21,18 @@ nof_checked_out_packages=`find "${packages_dir}" -type f -name PKGBUILD | wc -l` echo "${nof_packages} packages in state repo" echo "${nof_checked_out_packages} packages are checked out" -exit 0 +> "${data_dir}/stats" +echo "packages_state\t${nof_packages}" >> "${data_dir}/stats" +echo "packages_repos\t${nof_checked_out_packages}" >> "${data_dir}/stats" # find duplicate entries in state repo +> "${data_dir}/duplicates" for duplicate in `find "${state_dir}"/{core,extra}-{any,x86_64} -type f | \ rev | cut -f 1 -d / | rev | sort | uniq -D | uniq`; do for packages in `ls ${state_dir}/{core,extra}-{any,x86_64}/$duplicate 2>/dev/null`; do for instance in `echo $packages | rev | cut -f 1,2 -d / | rev`; do - echo -n "${instance} " - cat "${state_dir}/$instance" + echo -n "${instance} " >> "${data_dir}/duplicates" + cat "${state_dir}/$instance" >> "${data_dir}/duplicates" done done done diff --git a/bin/genhtml b/bin/genhtml new file mode 100755 index 0000000..8593727 --- /dev/null +++ b/bin/genhtml @@ -0,0 +1,15 @@ +#!/bin/oksh + +BASE="${0%/*}/.." +. "${BASE}/conf/default.conf" + +if test ! -d "${html_dir}"; then + echo "no html output diretory found.. call setup first." + exit 1 +fi + +FILES="summary" + +for file in $FILES; do + m4 -I "${templates_dir}" -P < "${templates_dir}/${file}.m4" > "${html_dir}/${file}.html" +done diff --git a/bin/setup b/bin/setup index f1e252c..150e168 100755 --- a/bin/setup +++ b/bin/setup @@ -22,6 +22,7 @@ else echo "package directory exists" fi + for repo in core extra; do for arch in any x86_64; do if test ! -d "${packages_dir}/${repo}-${arch}"; then @@ -33,4 +34,11 @@ for repo in core extra; do done done +if test ! -d "${data_dir}"; then + echo "creating directory for storing data.." + mkdir -p "${data_dir}" +else + echo "data directory exists" +fi + # TODO: AUR directory diff --git a/bin/update b/bin/update index 31333dc..7be65a1 100755 --- a/bin/update +++ b/bin/update @@ -13,8 +13,12 @@ if test ! -d "${packages_dir}"; then exit 1 fi +echo "Updating main state git repo.." + git -C "${state_dir}" pull +echo "Checking statistics.." + find "${state_dir}"/{core,extra}-{any,x86_64} -type f > /tmp/update_packages.$$ nof_packages=`cat /tmp/update_packages.$$ | wc -l` diff --git a/conf/default.conf b/conf/default.conf index bd1be9b..c8dd762 100644 --- a/conf/default.conf +++ b/conf/default.conf @@ -10,3 +10,6 @@ fi script_dir="${base_dir}/scripts" state_dir="${base_dir}/state" packages_dir="${base_dir}/packages" +data_dir="${base_dir}/data" +templates_dir="${base_dir}/templates" +html_dir="${base_dir}/html" diff --git a/html/static/archnav32.png b/html/static/archnav32.png new file mode 100644 index 0000000..a7fd0d8 Binary files /dev/null and b/html/static/archnav32.png differ diff --git a/html/static/archweb.css b/html/static/archweb.css new file mode 100644 index 0000000..d717851 --- /dev/null +++ b/html/static/archweb.css @@ -0,0 +1,876 @@ +#archnavbar{ + height:40px!important; + padding:10px 15px!important; + background:#333!important; + border-bottom:5px #08c solid!important +} +#archnavbarlogo{ + float:left!important; + margin:0!important; + padding:0!important; + height:40px!important; + width:230px!important; + background:url(archnav32.png) no-repeat!important +} +#archnavbarlogo h1{ + margin:0!important; + padding:0!important; + text-indent:-9999px!important +} +#archnavbarlogo a{ + display:block!important; + height:40px!important; + width:230px!important +} +#archnavbarlist{ + display:inline!important; + float:right!important; + list-style:none!important; + margin:0!important; + padding:0!important +} +#archnavbarlist li{ + float:left!important; + font-size:14px!important; + font-family:sans-serif!important; + line-height:45px!important; + padding-right:15px!important; + padding-left:15px!important +} +#archnavbarlist li a{ + color:#999; + font-weight:bold!important; + text-decoration:none!important +} +#archnavbarlist li a:hover{ + color:white!important; + text-decoration:underline!important +} +*{ + margin:0; + padding:0; + line-height:1.4 +} +body{ + min-width:650px; + background:#f6f9fc; + color:#222; + font:normal 100% sans-serif; + text-align:center +} +p{ + margin:.33em 0 1em +} +ol, ul{ + margin-bottom:1em; + padding-left:2em +} +ul{ + list-style:square +} +code{ + font:1.2em monospace; + background:#ffd; + padding:.15em .25em +} +pre{ + font:1.2em monospace; + border:1px solid #bdb; + background:#dfd; + padding:.5em; + margin:1em +} +pre code{ + display:block; + background:none; + overflow:auto +} +blockquote{ + margin:1.5em 2em +} +input{ + vertical-align:middle +} +select[multiple]{ + padding:1px 0 +} +select[multiple] option{ + padding:0 .5em 0 .3em +} +input[type=submit]{ + padding:0 .6em +} +.clear{ + clear:both +} +.hide{ + display:none +} +hr{ + border:none; + border-top:1px solid #888 +} +img{ + border:0 +} +#content{ + font-size:.812em +} +a{ + text-decoration:none +} +a:link, th a:visited{ + color:#07b +} + a:visited{ + color:#666 +} + a:hover{ + text-decoration:underline; + color:#666 +} + a:active{ + color:#e90 +} + a.headerlink{ + visibility:hidden; + padding-left:.5em +} + h3:hover>a.headerlink{ + visibility:visible +} + h2{ + font-size:1.5em; + margin-bottom:.5em; + border-bottom:1px solid #888 +} + h3{ + font-size:1.25em; + margin-top:.5em +} + h4{ + font-size:1.15em; + margin-top:1em +} + h5{ + font-size:1em; + margin-top:1em +} + #content{ + width:95%; + margin:0 auto; + text-align:left +} + #content-left-wrapper{ + float:left; + width:100% +} + #content-left{ + margin:0 340px 0 0 +} + #content-right{ + float:left; + width:300px; + margin-left:-300px +} + div.box{ + margin-bottom:1.5em; + padding:.65em; + background:#ecf2f5; + border:1px solid #bcd +} + #footer{ + clear:both; + margin:2em 0 1em +} + #footer p{ + margin:0; + text-align:center; + font-size:.85em +} + div.center, table.center, img.center{ + width:auto; + margin-left:auto; + margin-right:auto +} + p.center, td.center, th.center{ + text-align:center +} + table{ + width:100%; + border-collapse:collapse +} + table .wrap{ + white-space:normal +} + th, td{ + white-space:nowrap; + text-align:left +} + th{ + vertical-align:middle; + font-weight:bold +} + td{ + vertical-align:top +} + table.pretty1{ + width:auto; + margin-top:.25em; + margin-bottom:.5em; + border-collapse:collapse; + border:1px solid #bcd +} + .pretty1 th{ + padding:.35em; + background:#e4eeff; + border:1px solid #bcd +} + .pretty1 td{ + padding:.35em; + border:1px dotted #bcd +} + table.pretty2{ + width:auto; + margin-top:.25em; + margin-bottom:.5em; + border-collapse:collapse; + border:1px solid #bbb +} + .pretty2 th{ + padding:.35em; + background:#eee; + border:1px solid #bbb +} + .pretty2 td{ + padding:.35em; + border:1px dotted #bbb +} + table.compact{ + width:auto +} + .compact td{ + padding:.25em 0 .25em 1.5em +} + dl{ + clear:both +} + dl dt, dl dd{ + margin-bottom:4px; + padding:8px 0 4px; + font-weight:bold; + border-top:1px dotted #bbb +} + dl dt{ + color:#333; + float:left; + padding-right:15px +} + form p{ + margin:.5em 0 +} + fieldset{ + border:0 +} + label{ + width:12em; + vertical-align:top; + display:inline-block; + font-weight:bold +} + input[type=text], input[type=password], textarea{ + padding:.10em +} + form.general-form label, form.general-form .form-help{ + width:10em; + vertical-align:top; + display:inline-block +} + form.general-form input[type=text], form.general-form textarea{ + width:45% +} + #archdev-navbar{ + margin:1.5em 0 +} + #archdev-navbar ul{ + list-style:none; + margin:-0.5em 0; + padding:0 +} + #archdev-navbar li{ + display:inline; + margin:0; + padding:0; + font-size:.9em +} + #archdev-navbar li a{ + padding:0 .5em; + color:#07b +} + #sys-message{ + width:35em; + text-align:center; + margin:1em auto; + padding:.5em; + background:#fff; + border:1px solid #f00 +} + #sys-message p{ + margin:0 +} + ul.errorlist{ + color:red +} + form ul.errorlist{ + margin:.5em 0 +} + table th.tablesorter-header{ + padding-right:20px; + background-image:url(data:image/gif; + base64, R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); + background-repeat:no-repeat; + background-position:center right; + cursor:pointer +} + table thead th.tablesorter-headerAsc{ + background-color:#e4eeff; + background-image:url(data:image/gif; + base64, R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7) +} + table thead th.tablesorter-headerDesc{ + background-color:#e4eeff; + background-image:url(data:image/gif; + base64, R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7) +} + table thead th.sorter-false{ + background-image:none; + cursor:default +} + #intro p.readmore{ + margin:-0.5em 0 0 0; + font-size:.9em; + text-align:right +} + #news{ + margin-top:1.5em +} + #news h3{ + float:left; + padding-bottom:.5em +} + #news div{ + margin-bottom:1em +} + #news div p{ + margin-bottom:.5em +} + #news .more{ + font-weight:normal +} + #news .rss-icon{ + float:right; + margin-top:1em +} + #news h4{ + clear:both; + font-size:1em; + margin-top:1.5em; + border-bottom:1px dotted #bbb +} + #news .timestamp{ + float:right; + font-size:.85em; + margin:-1.8em .5em 0 0 +} + #news h3 a{ + display:block; + background:#1794D1; + font-size:15px; + padding:2px 10px; + color:white +} + #news a:active{ + color:white +} + h3 span.arrow{ + display:block; + width:0; + height:0; + border-left:6px solid transparent; + border-right:6px solid transparent; + border-top:6px solid #1794D1; + margin:0 auto; + font-size:0; + line-height:0 +} + #pkgsearch{ + padding:1em .75em; + background:#3ad; + color:#fff; + border:1px solid #08b +} + #pkgsearch label{ + width:auto; + padding:.1em 0 +} + #pkgsearch input{ + width:10em; + float:right; + font-size:1em; + color:#000; + background:#fff; + border:1px solid #09c +} + .pkgsearch-typeahead{ + position:absolute; + top:100%; + left:0; + z-index:1000; + display:none; + float:left; + padding:.15em .1em; + margin:0; + min-width:10em; + font-size:.812em; + text-align:left; + list-style:none; + background-color:#f6f9fc; + border:1px solid #09c +} + .pkgsearch-typeahead li a{ + color:#000 +} + .pkgsearch-typeahead li.active a{ + color:#07b +} + #pkg-updates h3{ + margin:0 0 .3em +} + #pkg-updates .more{ + font-weight:normal +} + #pkg-updates .rss-icon{ + float:right; + margin:-2em 0 0 0 +} + #pkg-updates table{ + margin:0 +} + #pkg-updates td.pkg-name{ + white-space:normal +} + #pkg-updates td.pkg-arch{ + text-align:right +} + #pkg-updates span.testing{ + font-style:italic +} + #pkg-updates span.staging{ + font-style:italic; + color:#ff8040 +} + #nav-sidebar ul{ + list-style:none; + margin:.5em 0 .5em 1em; + padding:0 +} + #arch-sponsors img{ + padding:.3em 0 +} + div.widget{ + margin-bottom:1.5em +} + #konami{ + position:fixed; + top:0; + left:0; + width:100%; + height:100%; + text-align:center; + opacity:.6 +} + #rss-feeds .rss{ + padding-right:20px; + background:url(rss.c5ebdc5318d6.png) top right no-repeat +} + #artwork img.inverted{ + background:#333; + padding:0 +} + #artwork div.imagelist img{ + display:inline; + margin:.75em +} + .news-nav{ + float:right; + margin-top:-2.2em +} + .news-nav .prev, .news-nav .next{ + margin:0 1em +} + div.news-article .article-info{ + margin:0; + color:#999 +} + #newsform{ + width:60em +} + #newsform input[type=text], #newsform textarea{ + width:75% +} + .todolist-nav{ + float:right; + margin-top:-2.2em +} + .todolist-nav .prev, .todolist-nav .next{ + margin:0 1em +} + #donor-list ul{ + width:100% +} + #donor-list li{ + float:left; + width:25%; + min-width:20em +} + #arch-downloads h3{ + border-bottom:1px dotted #bbb +} + table.results{ + font-size:.846em; + border-top:1px dotted #999; + border-bottom:1px dotted #999 +} + .results th{ + padding:.5em 1em .25em .25em; + border-bottom:1px solid #999; + white-space:nowrap; + background-color:#fff +} + .results td{ + padding:.3em 1em .3em 3px +} + .results tr.odd{ + background:#fff +} + .results tr.even{ + background:#e4eeff +} + .results .flagged{ + color:red +} + .results tr.empty td{ + text-align:center +} + #pkglist-about{ + margin-top:1.5em +} + .pkglist-stats{ + font-size:.85em +} + #pkglist-results .pkglist-nav{ + float:right; + margin-top:-2.2em +} + .pkglist-nav .prev{ + margin-right:1em +} + .pkglist-nav .next{ + margin-right:1em +} + .filter-criteria{ + margin-bottom:1em +} + .filter-criteria h3{ + font-size:1em; + margin-top:0 +} + .filter-criteria div{ + float:left; + margin-right:1.65em; + font-size:.85em +} + .filter-criteria legend{ + display:none +} + .filter-criteria label{ + width:auto; + display:block; + font-weight:normal +} + #pkgdetails #detailslinks{ + float:right +} + #pkgdetails #detailslinks h4{ + margin-top:0; + margin-bottom:.25em +} + #pkgdetails #detailslinks ul{ + list-style:none; + padding:0; + margin-bottom:0; + font-size:.846em +} + #pkgdetails #detailslinks>div{ + padding:.5em; + margin-bottom:1em; + background:#eee; + border:1px solid #bbb +} + #pkgdetails #actionlist .flagged{ + color:red; + font-size:.9em; + font-style:italic +} + #pkgdetails #pkginfo{ + width:auto +} + #pkgdetails #pkginfo td{ + padding:.25em 0 .25em 1.5em +} + #pkgdetails #pkginfo .userdata{ + font-size:.85em; + padding:.5em +} + #flag-pkg-form label{ + width:10em +} + #flag-pkg-form textarea, #flag-pkg-form input[type=text]{ + width:45% +} + #pkgdetails #metadata{ + clear:both +} + #pkgdetails #metadata h3{ + background:#555; + color:#fff; + font-size:1em; + margin-bottom:.5em; + padding:.2em .35em +} + #pkgdetails #metadata ul{ + list-style:none; + margin:0; + padding:0 +} + #pkgdetails #metadata li{ + padding-left:.5em +} + #pkgdetails #metadata p{ + padding-left:.5em +} + #pkgdetails #metadata .message{ + font-style:italic +} + #pkgdetails #metadata br{ + clear:both +} + #pkgdetails #pkgdeps{ + float:left; + width:48%; + margin-right:2% +} + #pkgdetails #metadata .virtual-dep, #pkgdetails #metadata .testing-dep, #pkgdetails #metadata .staging-dep, #pkgdetails #metadata .opt-dep, #pkgdetails #metadata .make-dep, #pkgdetails #metadata .link-dep, #pkgdetails #metadata .check-dep, #pkgdetails #metadata .dep-desc{ + font-style:italic +} + #pkgdetails #pkgreqs{ + float:left; + width:50% +} + #pkgdetails #pkgfiles{ + clear:left; + padding-top:1em +} + #pkgfilelist li.d{ + color:#666 +} + #pkgfilelist li.f{ +} + table td.country{ + white-space:normal +} + #list-generator div ul{ + list-style:none; + display:inline; + padding-left:0 +} + #list-generator div ul li{ + display:inline +} + .visualize-mirror .axis path, .visualize-mirror .axis line{ + fill:none; + stroke:#000; + stroke-width:3px; + shape-rendering:crispEdges +} + .visualize-mirror .url-dot{ + stroke:#000 +} + .visualize-mirror .url-line{ + fill:none; + stroke-width:1.5px +} + #arch-bio-toc{ + width:75%; + margin:0 auto; + text-align:center +} + #arch-bio-toc a{ + white-space:nowrap +} + .arch-bio-entry{ + width:75%; + min-width:640px; + margin:0 auto +} + .arch-bio-entry td.pic{ + vertical-align:top; + padding-right:15px; + padding-top:2.25em +} + .arch-bio-entry td.pic img{ + padding:4px; + border:1px solid #ccc +} + .arch-bio-entry td h3{ + border-bottom:1px dotted #ccc; + margin-bottom:.5em +} + .arch-bio-entry table.bio{ + margin-bottom:2em +} + .arch-bio-entry table.bio th{ + color:#666; + font-weight:normal; + text-align:right; + padding-right:.5em; + vertical-align:top; + white-space:nowrap +} + .arch-bio-entry table.bio td{ + width:100%; + padding-bottom:.25em; + white-space:normal +} + #dev-login{ + width:auto +} + #dash-pkg-notify{ + text-align:right; + padding:1em 0 0; + margin-top:1em; + font-size:.85em; + border-top:1px dotted #bbb +} + #dash-pkg-notify label{ + width:auto; + font-weight:normal +} + #dash-pkg-notify input{ + vertical-align:middle; + margin:0 .25em +} + #dash-pkg-notify input[type=submit]{ + margin-top:-0.25em +} + #dash-pkg-notify p{ + margin:0 +} + table.dash-stats .key{ + width:50% +} + ul.admin-actions{ + float:right; + list-style:none; + margin-top:-2.5em +} + ul.admin-actions li{ + display:inline; + padding-left:1.5em +} + .todo-table .complete, .signoff-yes, #key-status .signed-yes, #releng-result .success-yes, #release-list .available-yes{ + color:green +} + .todo-table .incomplete, .signoff-no, #key-status .signed-no, #releng-result .success-no, #release-list .available-no{ + color:red +} + .todo-table .inprogress, .signoff-bad{ + color:darkorange +} + .todo-info{ + color:#999; + border-bottom:1px dotted #bbb +} + .todo-description{ + margin-top:1em; + padding-left:2em; + max-width:900px +} + .todo-pkgbases{ + border-top:1px dotted #bbb +} + .todo-list h4{ + margin-top:0; + margin-bottom:.4em +} + #dev-signoffs tr:hover{ + background:#ffd +} + ul.signoff-list{ + list-style:none; + margin:0; + padding:0 +} + .signoff-yes{ + font-weight:bold +} + .signoff-disabled{ + color:gray +} + #releng-feedback label{ + width:auto; + display:inline; + font-weight:normal +} + #releng-feedback ul{ + padding-left:1em +} + #releng-feedback li{ + list-style:none +} + #releng-feedback ul+.helptext{ + position:relative; + top:-0.9em +} + #archnavbar.anb-home ul li#anb-home a, + #archnavbar.anb-stats ul li#anb-stats a, + #archnavbar.anb-packages ul li#anb-packages a, + #archnavbar.anb-download ul li#anb-download a{ + color:white!important +} + .visualize-buttons{ + margin:.5em .33em +} + .visualize-buttons button.active{ + depressed:true +} + .visualize-chart{ + position:relative; + height:500px; + margin:.33em +} + #visualize-archrepo .treemap-cell{ + border:solid 1px white; + overflow:hidden; + position:absolute +} + #visualize-archrepo .treemap-cell span{ + padding:3px; + font-size:.85em; + line-height:1em +} + #visualize-keys svg{ + width:100%; + height:100% +} + diff --git a/html/static/favicon.ico b/html/static/favicon.ico new file mode 100644 index 0000000..8ef6f13 Binary files /dev/null and b/html/static/favicon.ico differ diff --git a/templates/footer.m4 b/templates/footer.m4 new file mode 100644 index 0000000..b026089 --- /dev/null +++ b/templates/footer.m4 @@ -0,0 +1,31 @@ +m4_define(`_FOOTER', +` + + + + + +') diff --git a/templates/header.m4 b/templates/header.m4 new file mode 100644 index 0000000..45335e1 --- /dev/null +++ b/templates/header.m4 @@ -0,0 +1,26 @@ +m4_define(`_HEADER', +` + + + + Arch Linux 32 - $1 + + + + + +
+ + +
+
+') diff --git a/templates/main.m4 b/templates/main.m4 deleted file mode 100644 index 604a8da..0000000 --- a/templates/main.m4 +++ /dev/null @@ -1,659 +0,0 @@ - - - - - Arch Linux 32 - List of Build Slaves - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - name - - - - operator - - - - currently building - - - - last connection - - - - building since - - - - trials - - - - logged lines - - - - last action - -
- build-tasossah-1 - - KitsuWhooa - - pentium4/ot-urchin - - 2024-09-10 19:11:29 - - 2024-09-10 19:09:18 - - 2 - - 601 - - checking-source -
- euronuc - - abaumann - - i686/guile2.2 - - 2024-09-10 19:11:26 - - 2024-09-09 23:12:01 - - 3 - - 12036 - - building -
- build-tasossah-2 - - KitsuWhooa - - i686/sniffnet - - 2024-09-10 19:11:07 - - 2024-09-10 15:24:15 - - 5 - - 6954 - - building -
- build-tasossah-fx - - KitsuWhooa - - pentium4/vlc - - 2024-09-10 19:11:01 - - 2024-09-09 08:13:36 - - 1 - - 1479 - - building -
- euronuc-i486 - - abaumann - - i486/rocm-llvm - - 2024-09-10 19:11:00 - - 2024-09-09 21:48:35 - - 4 - - 42243 - - building -
- build-tasossah-3 - - KitsuWhooa - - i686/ot-urchin - - 2024-09-10 19:10:47 - - 2024-09-10 19:01:21 - - 5 - - 3056 - - building -
- eurobuild6-6 - - abaumann - -   - - 2024-09-10 17:30:12 - - 2024-09-10 16:27:25 - -   - -   - -   -
- eurobuild6-4 - - abaumann - -   - - 2024-09-10 17:27:58 - - 2024-09-10 15:45:32 - -   - -   - -   -
- eurobuild6-1 - - abaumann - -   - - 2024-09-10 17:23:10 - - 2024-09-10 16:55:10 - -   - -   - -   -
- eurobuild6-5 - - abaumann - -   - - 2024-09-10 17:20:00 - - 2024-09-10 16:42:52 - -   - -   - -   -
- eurobuild6-8-i486 - - abaumann - -   - - 2024-09-10 17:14:43 - - 2024-09-10 16:51:28 - -   - -   - -   -
- eurobuild6-7-i486 - - abaumann - -   - - 2024-09-10 17:10:43 - - 2024-09-10 16:54:44 - -   - -   - -   -
- eurobuild6-3 - - abaumann - -   - - 2024-09-10 17:10:31 - - 2024-09-10 16:41:49 - -   - -   - -   -
- eurobuild6-2 - - abaumann - -   - - 2024-09-10 17:04:09 - - 2024-09-10 16:36:53 - -   - -   - -   -
- build-tasossah-c2d - - KitsuWhooa - -   - - 2024-09-09 15:20:04 - - 2024-09-09 15:01:04 - -   - -   - -   -
- eurobuild3-i486 - - abaumann - -   - - 2024-09-08 11:55:16 - - 2024-09-08 11:34:55 - -   - -   - -   -
- eurobuild3 - - abaumann - -   - - 2024-09-08 11:49:22 - - 2024-09-08 11:34:13 - -   - -   - -   -
- streusel-1 - - deep42thought - -   - -   - -   - -   - -   - -   -
- streusel-2 - - deep42thought - -   - -   - -   - -   - -   - -   -
- streusel-3 - - deep42thought - -   - -   - -   - -   - -   - -   -
- thuringiabuild1 - - deep42thought - -   - -   - -   - -   - -   - -   -
-
-
- - - -
-
- -
- -
- - - diff --git a/templates/summary.m4 b/templates/summary.m4 new file mode 100644 index 0000000..23c3b1c --- /dev/null +++ b/templates/summary.m4 @@ -0,0 +1,17 @@ +m4_include(header.m4) +m4_include(footer.m4) + +_HEADER(`Archlinux32 Consistency Checker',`anb-stats') + +

Statistics

+Generated on m4_esyscmd(date) +
+m4_esyscmd(cat ../data/stats)
+
+

Duplicate States in State Repo

+
+m4_esyscmd(cat ../data/duplicates)
+
+ +_FOOTER() + diff --git a/templates/table.m4 b/templates/table.m4 new file mode 100644 index 0000000..4913ad7 --- /dev/null +++ b/templates/table.m4 @@ -0,0 +1,658 @@ + + + + + Arch Linux 32 - List of Build Slaves + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + name + + + + operator + + + + currently building + + + + last connection + + + + building since + + + + trials + + + + logged lines + + + + last action + +
+ build-tasossah-1 + + KitsuWhooa + + pentium4/ot-urchin + + 2024-09-10 19:11:29 + + 2024-09-10 19:09:18 + + 2 + + 601 + + checking-source +
+ euronuc + + abaumann + + i686/guile2.2 + + 2024-09-10 19:11:26 + + 2024-09-09 23:12:01 + + 3 + + 12036 + + building +
+ build-tasossah-2 + + KitsuWhooa + + i686/sniffnet + + 2024-09-10 19:11:07 + + 2024-09-10 15:24:15 + + 5 + + 6954 + + building +
+ build-tasossah-fx + + KitsuWhooa + + pentium4/vlc + + 2024-09-10 19:11:01 + + 2024-09-09 08:13:36 + + 1 + + 1479 + + building +
+ euronuc-i486 + + abaumann + + i486/rocm-llvm + + 2024-09-10 19:11:00 + + 2024-09-09 21:48:35 + + 4 + + 42243 + + building +
+ build-tasossah-3 + + KitsuWhooa + + i686/ot-urchin + + 2024-09-10 19:10:47 + + 2024-09-10 19:01:21 + + 5 + + 3056 + + building +
+ eurobuild6-6 + + abaumann + +   + + 2024-09-10 17:30:12 + + 2024-09-10 16:27:25 + +   + +   + +   +
+ eurobuild6-4 + + abaumann + +   + + 2024-09-10 17:27:58 + + 2024-09-10 15:45:32 + +   + +   + +   +
+ eurobuild6-1 + + abaumann + +   + + 2024-09-10 17:23:10 + + 2024-09-10 16:55:10 + +   + +   + +   +
+ eurobuild6-5 + + abaumann + +   + + 2024-09-10 17:20:00 + + 2024-09-10 16:42:52 + +   + +   + +   +
+ eurobuild6-8-i486 + + abaumann + +   + + 2024-09-10 17:14:43 + + 2024-09-10 16:51:28 + +   + +   + +   +
+ eurobuild6-7-i486 + + abaumann + +   + + 2024-09-10 17:10:43 + + 2024-09-10 16:54:44 + +   + +   + +   +
+ eurobuild6-3 + + abaumann + +   + + 2024-09-10 17:10:31 + + 2024-09-10 16:41:49 + +   + +   + +   +
+ eurobuild6-2 + + abaumann + +   + + 2024-09-10 17:04:09 + + 2024-09-10 16:36:53 + +   + +   + +   +
+ build-tasossah-c2d + + KitsuWhooa + +   + + 2024-09-09 15:20:04 + + 2024-09-09 15:01:04 + +   + +   + +   +
+ eurobuild3-i486 + + abaumann + +   + + 2024-09-08 11:55:16 + + 2024-09-08 11:34:55 + +   + +   + +   +
+ eurobuild3 + + abaumann + +   + + 2024-09-08 11:49:22 + + 2024-09-08 11:34:13 + +   + +   + +   +
+ streusel-1 + + deep42thought + +   + +   + +   + +   + +   + +   +
+ streusel-2 + + deep42thought + +   + +   + +   + +   + +   + +   +
+ streusel-3 + + deep42thought + +   + +   + +   + +   + +   + +   +
+ thuringiabuild1 + + deep42thought + +   + +   + +   + +   + +   + +   +
+
+
+ + + +
+
+ +
+ +
+ + + -- cgit v1.2.3-70-g09d2