aboutsummaryrefslogtreecommitdiffstats
path: root/build.sh
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2022-04-19 00:24:23 +0300
committerla-ninpre <leobrekalini@gmail.com>2022-04-19 00:32:37 +0300
commit8d962aabf74c42c3afdc38f2f85fa7b06fd04ef0 (patch)
treee5054517b940e5c535a4c7282d7faa7b6462e794 /build.sh
parent9f4b181b36418669462c0300c2e090d0f4547dc8 (diff)
downloadaaoth.xyz-8d962aabf74c42c3afdc38f2f85fa7b06fd04ef0.tar.gz
aaoth.xyz-8d962aabf74c42c3afdc38f2f85fa7b06fd04ef0.zip
reimplement website using shell scripts
major change, i know. now i'm using ssg and rssg by roman zolotarev. okay, well, not exactly. ssg is modified to generate pages for gemini too. it's hard to maintain two different things simultaneously. bye-bye jekyll!
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..f6a63f8
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,53 @@
+#!/bin/sh -e
+
+# interplanetary static site build system
+# builds for both web and gemini
+
+# powered by ssg, rssg and lowdown
+# ssg and rssg are taken from rgz.ee and ssg is slightly modified
+
+ssg="$PWD/bin/ssg"
+rssg="$PWD/bin/rssg"
+
+address="https://aaoth.xyz"
+title="aaoth.xyz"
+feed_title="$title - feed"
+
+if [ -z "$AAOTH_ROOT" ]; then root="dst"; else root="$AAOTH_ROOT"; fi
+if [ -z "$AAOTH_GEMROOT" ]; then gemroot="dst_gemini"; else root="$AAOTH_GEMROOT"; fi
+en_src="en"
+en_dst="$root"
+en_gemdst="$gemroot"
+
+feed_file="$root/rss.xml"
+feed_gemfile="$gemroot/rss.xml"
+
+build_site() {
+ $ssg "$1" "$2" "$3" "$title" "$address"
+ sh "$PWD/bin/gen.sh"
+}
+
+build_rss() {
+ $rssg "$1/blog/index.md" "$feed_title" > "$feed_file"
+ cp "$feed_file" "$feed_gemfile"
+}
+
+main() {
+ [ "$1" = "-f" ] && {
+ rm -vrf "${en_dst:?}"/*
+ [ -f "$en_dst/.files" ] && rm -v "$en_dst/.files"
+
+ rm -vrf "${en_gemdst:?}"/*
+ [ -f "$en_gemdst/.files" ] && rm -v "$en_gemdst/.files"
+ }
+
+ [ -d "$root" ] || mkdir -p "$root"
+ [ -d "$gemroot" ] || mkdir -p "$gemroot"
+ [ -d "$en_dst" ] || mkdir -p "$en_dst"
+ [ -d "$en_gemdst" ] || mkdir -p "$en_gemdst"
+
+ build_site "$en_src" "$en_dst" "$en_gemdst"
+ build_rss "$en_src"
+}
+
+main "$@"