list

scripts

Repo containing scripts to be used with dovel, and git hooks that powers our web interface.

curl https://dovel.email/scripts.tar tar

72dedc3

Author: brian (git@myr.sh)

Date: Mon Sep 25 00:16:45 2023 -0300

Parent: 41d1226

Simplified scripts

Diff

diff --git a/aux.sh b/aux.sh
index 472a08c..b52abd2 100755
--- a/aux.sh
+++ b/aux.sh
@@ -1,5 +1,55 @@
#!/bin/sh

+pageheader() {
+	cat <<- EOF
+	<!DOCTYPE html>
+	<html>
+	<head>
+		<title>$1's git</title>
+		<meta charset="UTF-8">
+		<meta name="author" content="Brian Lee Mayer">
+		<meta name="description" content="This is the development homepage of the Dovel project. Find here all repos mailing lists. And latest development changes.">
+		<meta name="language" content="english">
+		<meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
+		<meta name="viewport" content="width=device-width, initial-scale=1">
+		<meta name="color-scheme" content="light dark">
+		<style>
+		body {
+			max-width: 40em;
+			margin: 60px auto;
+			padding: 20px;
+			font-family: sans-serif;
+		}
+		pre {
+			font-family: monospace;
+			white-space: pre-line;
+			font-weight: bold;
+			background: lightgray;
+			padding: 8px;
+			border-radius: 8px;
+		}
+		table {width: 100%}
+		th {text-align: left}
+		pre > file {
+			line-height: 0.65;
+			overflow-x: auto
+		}
+		ol li {padding-bottom: 10px}
+		li::marker {
+			color: gray;
+			content: counter(list-item, decimal-leading-zero) " "
+		}
+		ol {margin: 0}
+		tt {font-weight: bold}
+		@media (prefers-color-scheme: dark) {
+			pre {background: darkslategray}
+		}
+		</style>
+	</head>
+	<body>
+	EOF
+}
+
escapehtml() {
printf "%s" "$1" | sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'
}
diff --git a/post-receive b/post-receive
index 7d85646..51a8bab 100755
--- a/post-receive
+++ b/post-receive
@@ -9,6 +9,8 @@ OUT="$HOME/www/dovel.email"
[ -d "$OUT/$REPO/tree" ] && rm -rf "$OUT/$REPO/tree"
git clone . "$OUT/$REPO/tree"

+. ./hooks/aux.sh
+
# update git's index page
. ./hooks/update-git-index

diff --git a/update-git-index b/update-git-index
index 0949fc2..a19054b 100755
--- a/update-git-index
+++ b/update-git-index
@@ -4,38 +4,7 @@ echo "updating git pages"

# git.html lists all repos
cat << EOF > "$OUT/git.html"
-<!DOCTYPE html>
-<html>
-<head>
-	<title>dovel's git</title>
-	<meta charset="UTF-8">
-	<meta name="author" content="Brian Lee Mayer">
-	<meta name="description" content="This is the development homepage of the Dovel project. Find here all repos mailing lists. And latest development changes.">
-	<meta name="language" content="english">
-	<meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<meta name="color-scheme" content="light dark">
-	<style>
-	body {
-		max-width: 600px;
-		margin: 60px auto;
-		padding: 20px;
-		font-family: sans-serif;
-	}
-	pre {
-		font-weight: bold;
-		background: lightgray;
-		padding: 8px;
-		border-radius: 8px;
-	}
-	ol li {padding-bottom: 10px}
-	tt {font-weight: bold}
-	@media (prefers-color-scheme: dark) {
-		pre {background: darkslategray}
-	}
-	</style>
-</head>
-<body>
+	$(pageheader "dovel")
<h1>Dovel project Git home</h1>
Welcome! Here you'll find general info about our projects and how to
contribute to them. We proudly use dovel email technology for our
diff --git a/update-repo-index b/update-repo-index
index 8b55c45..a544d44 100755
--- a/update-repo-index
+++ b/update-repo-index
@@ -13,39 +13,7 @@ git archive -o "$OUT/$REPO-HEAD.zip" HEAD

echo "creating index.html"
cat << EOF > "$OUT/index.html"
-<!DOCTYPE html>
-<html>
-<head>
-	<title>$REPO's git</title>
-	<meta charset="UTF-8">
-	<meta name="author" content="Brian Lee Mayer">
-	<meta name="description" content="This is the development homepage of the Dovel project, this is the repo $REPO. Find here code, all mailing lists and latest development changes.">
-	<meta name="language" content="english">
-	<meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<meta name="color-scheme" content="light dark">
-	<style>
-	body {
-		max-width: 600px;
-		margin: 60px auto;
-		padding: 20px;
-		font-family: sans-serif;
-	}
-	pre {
-		white-space: pre-line;
-		font-family: monospace;
-		background: lightgray;
-		padding: 8px;
-		border-radius: 8px;
-	}
-	ol li {padding-bottom: 10px}
-	tt {font-weight: bold}
-	@media (prefers-color-scheme: dark) {
-		pre {background: darkslategray}
-	}
-	</style>
-</head>
-<body>
+$(pageheader "$REPO")
<center>
<h1>$REPO</h1>
<nav>
diff --git a/update-repo-tree b/update-repo-tree
index f287003..8f93785 100755
--- a/update-repo-tree
+++ b/update-repo-tree
@@ -4,64 +4,27 @@
# set -ex
echo "updating git tree"

-. ./hooks/aux.sh
-
OUT="$HOME/www/dovel.email/$REPO"
createfilepage() {
cat <<- EOF
-	<!DOCTYPE html>
-	<html>
-	<head>
-		<title>$REPO's git</title>
-		<meta charset="UTF-8">
-		<meta name="author" content="Brian Lee Mayer">
-		<meta name="description" content="This is the development homepage of the Dovel project, this is the repo $REPO. Find here code, all mailing lists and latest development changes.">
-		<meta name="language" content="english">
-		<meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
-		<meta name="viewport" content="width=device-width, initial-scale=1">
-		<meta name="color-scheme" content="light dark">
-		<style>
-		body {
-			max-width: 600px;
-			margin: 60px auto;
-			padding: 20px;
-			font-family: sans-serif;
-		}
-		li::marker {
-			color: gray;
-			content: counter(list-item, decimal-leading-zero) " "
-		}
-		ol {margin: 0}
-		pre {
-			line-height: 0.65;
-			font-family: monospace;
-			background: lightgray;
-			padding: 8px;
-			border-radius: 8px;
-			overflow-x: auto
-		}
-		@media (prefers-color-scheme: dark) {
-			pre {background: darkslategray}
-		}
-		</style>
-	</head>
-	<body>
-		<center>
-		<h1>$REPO</h1>
-		<nav>
-			<a href=/$REPO/index.html>index</a> &emsp;
-			<a href=/$REPO/refs.html>refs</a> &emsp;
-			<a href=/$REPO/log.html>log</a> &emsp;
-			<a href=/$REPO/tree.html>tree</a> &emsp;
-			<a href=/$REPO/mail.html>mail</a>
-		</nav>
-		<p><i>$(cat description)</i></p>
-		</center>
-		<kbd>curl https://dovel.email/$REPO/$REPO.zip</kbd>
-		<hr>
-		<h2>$1</h2>
-		<pre>
-		<ol>
+	$(pageheader "$REPO")
+	<center>
+	<h1>$REPO</h1>
+	<nav>
+		<a href=/$REPO/index.html>index</a> &emsp;
+		<a href=/$REPO/refs.html>refs</a> &emsp;
+		<a href=/$REPO/log.html>log</a> &emsp;
+		<a href=/$REPO/tree.html>tree</a> &emsp;
+		<a href=/$REPO/mail.html>mail</a>
+	</nav>
+	<p><i>$(cat description)</i></p>
+	</center>
+	<kbd>curl https://dovel.email/$REPO/$REPO.zip</kbd>
+	<hr>
+	<h2>$1</h2>
+	<file>
+	<pre>
+	<ol>
EOF

# print file
@@ -70,37 +33,12 @@ createfilepage() {
printf "<li>%s</li>\n" "$(escapehtml "$l")"
done < "$OUT/tree/$1"

-	echo "</ol>\n</pre>\n</body>\n</html>"
+	echo "</ol>\n</pre>\n<</file>\n</body>\n</html>"
}

echo "creating tree.html"
cat << EOF > "$OUT/tree.html"
-<!DOCTYPE html>
-<html>
-<head>
-	<title>$REPO's git</title>
-	<meta charset="UTF-8">
-	<meta name="author" content="Brian Lee Mayer">
-	<meta name="description" content="This is the development homepage of the Dovel project, this is the repo $REPO. Find here code, all mailing lists and latest development changes.">
-	<meta name="language" content="english">
-	<meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<meta name="color-scheme" content="light dark">
-	<style>
-	body {
-		max-width: 600px;
-		margin: 60px auto;
-		padding: 20px;
-		font-family: sans-serif;
-	}
-	table {width: 100%}
-	th {text-align: left}
-	@media (prefers-color-scheme: dark) {
-		pre {background: darkslategray}
-	}
-	</style>
-</head>
-<body>
+	$(pageheader "$REPO")
<center>
<h1>$REPO</h1>
<nav>