diff options
Diffstat (limited to 'www/generate/src/gomod')
| -rwxr-xr-x | www/generate/src/gomod | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/www/generate/src/gomod b/www/generate/src/gomod new file mode 100755 index 0000000..4973b88 --- /dev/null +++ b/www/generate/src/gomod @@ -0,0 +1,35 @@ +#!/bin/rc + +domain = $1 +gitdir = /var/git +if (~ $domain ()) { + domain = `hostname +} +wwwdir = /var/www/htdocs/go.$domain + + +tmpdir = `{mktemp -d} +if (!cd $tmpdir) { + exit 1 +} + +fn sigexit { + rm -rf $tmpdir +} + +for (repo in $gitdir/*) { + name = `{basename $repo} + dest = $wwwdir/$name + + if (test -e go.mod) { + rm go.mod + } + + if (git archive --remote=$repo HEAD go.mod >[2]/dev/null | tar -xf - >[2]/dev/null) { + echo GEN $name + mkdir -p $dest + modname = `{head -1 go.mod | sed 's/^module //'} + printf '<!DOCTYPE html><html><head><meta name="go-import" content="%s git %s"></head></html>' \ + $modname https://src.$domain/$name > $dest/index.html + } +} |