You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
6.0 KiB
Django/Jinja
195 lines
6.0 KiB
Django/Jinja
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
|
<meta name="viewport"
|
|
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
|
|
<meta name="format-detection" content="telephone=no">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="">
|
|
<meta name="author" content="">
|
|
<meta name="description" content="">
|
|
<meta name="keywords" content="">
|
|
|
|
<meta property="og:type" content="">
|
|
<meta property="og:title" content="">
|
|
|
|
<meta property="og:image" content="">
|
|
<meta property="og:description" content="">
|
|
<meta property="og:url" content="">
|
|
<title>Document</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<header>
|
|
<h1>TL;DR</h1>
|
|
<h2>too log didn't read</h2>
|
|
<p>This log was generated on {{ now }}, the next will be available after {{ next_report }}</p>
|
|
</header>
|
|
<nav class="slider slider--top">
|
|
<label for="time">time</label>
|
|
<input type="range" min="0" max="100" id="time">
|
|
</nav>
|
|
|
|
<nav class="slider slider--left">
|
|
<label for="annotation">annotations</label>
|
|
<input class="vertical" type="range" value="0" min="0" max="400" id="annotation">
|
|
</nav>
|
|
<main>
|
|
<div class="main__background">
|
|
<div class="main__background--radius"></div>
|
|
</div>
|
|
<article>
|
|
<h2>What happened today?</h2>
|
|
|
|
<pre>uptime -s</pre>
|
|
<p>{{ since_last_boot }}</p>
|
|
{% if since_last_boot is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
{% if days_since_last_boot|int > 15 %}This is unusual, we are used to ...{% else %}This is common, the fragility of these machines are more prominant than any cloud user expects. Partially because of scale, partially because a lot of labour that happen in datacenters just escapes us all when we want to just upload an image.{% endif %}
|
|
</span>
|
|
{% endif %}
|
|
|
|
|
|
<p>the ones below do not have the "right" annotation levels</p>
|
|
|
|
<pre>last_user_added</pre>
|
|
<p>{{last_user_added}}
|
|
{% if last_user_added is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for last_user_added
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>users_created_today</pre>
|
|
<p>{{users_created_today}}
|
|
{% if users_created_today is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for users_created_today
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>list_active_services</pre>
|
|
<p>{{list_active_services}}
|
|
{% if list_active_services is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for list_active_services
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>list_groups</pre>
|
|
<p>{{list_groups}}
|
|
{% if list_groups is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for list_groups
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
|
|
<pre>list_package_installs</pre>
|
|
<p>{{list_package_installs}}
|
|
{% if list_package_installs is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for list_package_installs
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>list_package_upgrade</pre>
|
|
<p>{{list_package_upgrade}}
|
|
{% if list_package_upgrade is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for list_package_upgrade
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>list_package_remove</pre>
|
|
<p>{{list_package_remove}}
|
|
{% if list_package_remove is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for list_package_remove
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>device_info</pre>
|
|
<p>{{device_info}}
|
|
{% if device_info is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for device_info
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>debian_version</pre>
|
|
<p>{{debian_version}}
|
|
{% if debian_version is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for debian_version
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
<pre>kernel_version</pre>
|
|
<p>{{kernel_version}}
|
|
{% if kernel_version is defined %}
|
|
<span class="annotation fn-annotatation" level="1">
|
|
A level 1 annotation for kernel_version
|
|
</span>
|
|
{% else %}
|
|
(no input)
|
|
{% endif %}
|
|
|
|
</article>
|
|
</main>
|
|
|
|
<aside>
|
|
<h3>whoami: {{device_info}}</h3>
|
|
</aside>
|
|
|
|
<footer>
|
|
<h3> current residency {{hostname}}</h3>
|
|
</footer>
|
|
|
|
|
|
<script type="text/javascript" src="script.js"></script>
|
|
<script type="text/javascript">
|
|
window.addEventListener("DOMContentLoaded", function() {
|
|
var nextDate = new Date("{{ next_report }}");
|
|
var now = new Date();
|
|
var ms = nextDate - now;
|
|
console.log("start a timeout in , ", ms);
|
|
if(ms > 0) {
|
|
window.setTimeout(function() {
|
|
// TODO: add a check if there is still an internet connection
|
|
// TODO: add a check if there is actually new content?
|
|
// TODO: think about server time vs. client time
|
|
window.location.reload(true);
|
|
}, ms + 10000);
|
|
}
|
|
});
|
|
|
|
|
|
</script>
|
|
</body>
|
|
|
|
</html> |