From ba61dfd69504ec6263a9dee9931d93adeb6f3142 Mon Sep 17 00:00:00 2001
From: Rutger Broekhoff
Date: Mon, 7 Jul 2025 21:52:08 +0200
Subject: Initialize repository
---
explorer/.gitignore | 2 +
explorer/generate.sh | 140 +++++++++++++++++++++++++++++++++++++++++++++++++
explorer/tree.sh | 17 ++++++
explorer/upload-new.sh | 16 ++++++
4 files changed, 175 insertions(+)
create mode 100644 explorer/.gitignore
create mode 100755 explorer/generate.sh
create mode 100755 explorer/tree.sh
create mode 100755 explorer/upload-new.sh
(limited to 'explorer')
diff --git a/explorer/.gitignore b/explorer/.gitignore
new file mode 100644
index 0000000..94529d8
--- /dev/null
+++ b/explorer/.gitignore
@@ -0,0 +1,2 @@
+dest/
+dest-*/
diff --git a/explorer/generate.sh b/explorer/generate.sh
new file mode 100755
index 0000000..cf2b77a
--- /dev/null
+++ b/explorer/generate.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+shopt -s globstar
+set -eu
+set -o pipefail
+
+rm -rf dest
+mkdir -p dest
+TREE="$(pwd)/tree.sh"
+destdir="$(pwd)/dest"
+commit="$(git rev-parse --short HEAD)"
+
+cd ../theories
+for file in **/*.v; do
+ destfile="$destdir/$file.html"
+ mkdir -p "$(dirname "$destfile")"
+ echo "
+
+
+
+ $file
+
+
+
+
+
+
Verified Interpreters for Dynamic Languages
+ with Applications to the Nix Expression Language
+
+
+ Rocq Mechanization
+ Commit $commit
+
+
+
+
+
' >> "$destfile"
+ python -m pygments -fhtml -lcoq -Oanchorlinenos,linenos,linespans=line "$file" >> "$destfile"
+ echo '
+
+
+
+
+' >> "$destfile"
+done
diff --git a/explorer/tree.sh b/explorer/tree.sh
new file mode 100755
index 0000000..1620d2d
--- /dev/null
+++ b/explorer/tree.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+tree -J ../theories -P "*.v" | jq --arg "current" "$1" -r '
+ ("../" * ($current | [ scan("/+") ] | length)) as $prefix |
+ def make_item_link(prefix):
+ (if $current == prefix + .name then " class=\"current\"" else "" end) as $extra |
+ "\(.name | @html)";
+ def handle_item(prefix):
+ if .type == "directory" then
+ "\(.name | @html)" +
+ (.name as $dir | .contents | map(handle_item("\(prefix)\($dir)/")) | add) +
+ "
"
+ else
+ "\(make_item_link(prefix))"
+ end;
+ .[0].contents | map(handle_item("")) | add
+'
diff --git a/explorer/upload-new.sh b/explorer/upload-new.sh
new file mode 100755
index 0000000..7873aa2
--- /dev/null
+++ b/explorer/upload-new.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -eu
+set -o pipefail
+
+commit="$(git rev-parse --short HEAD)"
+
+[ -e "dest-$commit" ] && {
+ echo "Revision $commit may have already been uploaded. Delete the directory dest-$commit to force re-upload.";
+ exit 1
+}
+
+./generate.sh
+mv dest "dest-$commit"
+mcli cp --recursive --checksum sha256 dest-$commit/* s3-default-par/verified-dyn-lang-interp/$commit/theories/
+echo "Base URL (for \\rocqbaseurl): https://s3.fr-par.scw.cloud/verified-dyn-lang-interp/$commit/"
--
cgit v1.2.3