aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2020-09-25 13:53:14 -0300
committerEuAndreh <eu@euandre.org>2020-09-25 13:53:14 -0300
commited86bf8e1926d4d22a399e84efa9ed74d6b1d86d (patch)
tree3ac934476cfa6e4e389a82663f08b3f51a87e3f9
parentci-build.sh: Build site derivation directly (diff)
downloaddotfiles-ed86bf8e1926d4d22a399e84efa9ed74d6b1d86d.tar.gz
dotfiles-ed86bf8e1926d4d22a399e84efa9ed74d6b1d86d.tar.xz
fake-symlinks.sh: Make all projects many-lang
-rw-r--r--bash/fake-symlinks.sh44
-rwxr-xr-xbash/templates/build-site-single-lang.sh51
-rwxr-xr-xbash/templates/build-site.sh (renamed from bash/templates/build-site-many-langs.sh)0
-rw-r--r--bash/templates/conf.py (renamed from bash/templates/sphinx-base.conf.py)14
-rw-r--r--bash/templates/layout-many-langs.language-picker.html15
-rw-r--r--bash/templates/layout-many-langs.page-path.html1
-rw-r--r--bash/templates/layout-many-langs.version-section.html1
-rw-r--r--bash/templates/layout-single-lang.html45
-rw-r--r--bash/templates/layout-single-lang.language-picker.html0
-rw-r--r--bash/templates/layout-single-lang.page-path.html1
-rw-r--r--bash/templates/layout-single-lang.version-section.html1
-rw-r--r--bash/templates/layout.html (renamed from bash/templates/layout-many-langs.html)0
-rw-r--r--bash/templates/layout.template.html45
-rw-r--r--bash/templates/sphinx-many-langs.conf.py14
-rw-r--r--bash/templates/sphinx-single-lang.conf.py6
-rw-r--r--bash/templates/utils.nix85
16 files changed, 63 insertions, 260 deletions
diff --git a/bash/fake-symlinks.sh b/bash/fake-symlinks.sh
index 0045fd1f..f797d679 100644
--- a/bash/fake-symlinks.sh
+++ b/bash/fake-symlinks.sh
@@ -19,39 +19,16 @@ cp "${DOTFILES}/org.keepassxc.keepassxc_browser.json" ~/.mozilla/native-messagin
pushd "${DOTFILES}/bash/templates/" > /dev/null || exit 1
export DOLLAR='$'
-# Derived from:
-# https://unix.stackexchange.com/a/26289
-env \
- VERSION_SECTION="$(cat layout-single-lang.version-section.html)" \
- LANGUAGE_PICKER="$(cat layout-single-lang.language-picker.html)" \
- PAGE_PATH="$(cat layout-single-lang.page-path.html)" \
- envsubst < layout.template.html > layout-single-lang.html
-
-env \
- VERSION_SECTION="$(cat layout-many-langs.version-section.html)" \
- LANGUAGE_PICKER="$(cat layout-many-langs.language-picker.html)" \
- PAGE_PATH="$(cat layout-many-langs.page-path.html)" \
- envsubst < layout.template.html > layout-many-langs.html
-
documented-project-fake-ln() {
export PROJECT_UC="${1^}"
export PROJECT="$1"
- I18N="$2"
- if [[ "$I18N" = true ]]; then
- sed "s/__PROJECT_UC__/$PROJECT_UC/" build-site-many-langs.sh > "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
- chmod +x "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
- cat <(envsubst < sphinx-base.conf.py) <(envsubst < sphinx-many-langs.conf.py) > "$HOME/dev/libre/$PROJECT/docs/conf.py"
- envsubst < layout-many-langs.html > "$HOME/dev/libre/$PROJECT/docs/_templates/layout.html"
- envsubst < utils-i18n.nix > "$HOME/dev/libre/$PROJECT/utils-i18n.nix"
- cp assert-docs-spelling-many-langs.sh "$HOME/dev/libre/$PROJECT/scripts/assert-docs-spelling.sh"
- else
- sed "s/__PROJECT_UC__/$PROJECT_UC/" build-site-single-lang.sh > "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
- chmod +x "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
- cat <(envsubst < sphinx-base.conf.py) <(envsubst < sphinx-single-lang.conf.py) > "$HOME/dev/libre/$PROJECT/docs/conf.py"
- envsubst < layout-single-lang.html > "$HOME/dev/libre/$PROJECT/docs/_templates/layout.html"
- cp assert-docs-spelling-single-lang.sh "$HOME/dev/libre/$PROJECT/scripts/assert-docs-spelling.sh"
- fi
+ sed "s/__PROJECT_UC__/$PROJECT_UC/" build-site.sh > "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
+ chmod +x "$HOME/dev/libre/$PROJECT/scripts/build-site.sh"
+ envsubst < conf.py > "$HOME/dev/libre/$PROJECT/docs/conf.py"
+ envsubst < layout.html > "$HOME/dev/libre/$PROJECT/docs/_templates/layout.html"
+ envsubst < utils-i18n.nix > "$HOME/dev/libre/$PROJECT/utils-i18n.nix"
+ cp assert-docs-spelling-many-langs.sh "$HOME/dev/libre/$PROJECT/scripts/assert-docs-spelling.sh"
envsubst < utils.nix > "$HOME/dev/libre/$PROJECT/utils.nix"
envsubst < preamble.org > "$HOME/dev/libre/$PROJECT/workflow/preamble.org"
@@ -70,15 +47,10 @@ documented-project-fake-ln() {
envsubst < .build.yml > "$HOME/dev/libre/$PROJECT/.build.yml"
}
-# single language, documented project
-for r in cement intermediauth; do
- documented-project-fake-ln "$r" false
-done
-
# multiple languages, documented project
# shellcheck disable=2043
-for r in songbooks mediator; do
- documented-project-fake-ln "$r" true
+for r in songbooks mediator intermediauth; do
+ documented-project-fake-ln "$r"
done
for r in boneco website dotfiles; do
diff --git a/bash/templates/build-site-single-lang.sh b/bash/templates/build-site-single-lang.sh
deleted file mode 100755
index d70eec15..00000000
--- a/bash/templates/build-site-single-lang.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env bash
-set -Eeuo pipefail
-cd "$(dirname "${BASH_SOURCE[0]}")"
-cd ../
-
-OUT="${1}"
-HTMLIZE="${2}"
-PROJECT_UC="__PROJECT_UC__"
-
-sed -e '/^\* Tasks$/,/^\* Improvements$/!d' TODOs.org | \
- head -n -1 | \
- cat workflow/preamble.org - > tasks-and-bugs.org
-
-emacs tasks-and-bugs.org \
- -l "${HTMLIZE}" \
- --eval '(setq org-export-allow-bind-keywords t)' \
- -f org-html-export-to-html \
- --batch \
- --kill
-
-# Add anchor link to bug headers
-perl -pe \
- 's|^<h3 id="(.*?)">(.*)</h3>$|<h3 id="\1">\2<br /><a class="header-anchor" href="#\1">#\1</a></h3>|' \
- tasks-and-bugs.html > "${OUT}/tasks-and-bugs.html"
-
-pushd docs
-make html
-popd
-
-cp docs/favicon.ico "$OUT"
-mv docs/_build/html/_static/ "${OUT}/_static/"
-
-TAGS="$(git tag | cat - <(echo master))"
-
-for tag in ${TAGS}; do
- mkdir -p "tmp/$tag/"
- git --work-tree="tmp/$tag/" checkout --recurse-submodules "$tag" -- .
- git reset .
-
- pushd "tmp/$tag/docs/"
- jq ".version = \"$tag\"" ../metadata.json | sponge ../metadata.json
- make latexpdf epub html
- popd
-
- mv "tmp/$tag/docs/_build/html/" "${OUT}/$tag/"
- pushd "${OUT}/$tag/"
- rm -rf _static/
- ln -s ../_static .
- popd
- mv "tmp/$tag/docs/_build/latex/${PROJECT_UC,}.pdf" "$OUT/$tag/${PROJECT_UC}.pdf"
-done
diff --git a/bash/templates/build-site-many-langs.sh b/bash/templates/build-site.sh
index a58030ee..a58030ee 100755
--- a/bash/templates/build-site-many-langs.sh
+++ b/bash/templates/build-site.sh
diff --git a/bash/templates/sphinx-base.conf.py b/bash/templates/conf.py
index f538073b..b6e8f84d 100644
--- a/bash/templates/sphinx-base.conf.py
+++ b/bash/templates/conf.py
@@ -38,3 +38,17 @@ extlinks = {
"src": ("https://git.euandreh.xyz/$PROJECT/tree/%s", ""),
"bug": ("https://$PROJECT.euandreh.xyz/tasks-and-bugs.html#%s", "bug "),
}
+
+with open("i18n-pagenames.json", "r") as f:
+ i18n_pagenames = json.loads(f.read())
+
+html_context = {
+ "all_versions": all_versions,
+ "langs": metadata["langs"],
+ "current_lang": metadata["current_lang"],
+ "sourcehut_url_prefix": "https://git.euandreh.xyz/songbooks/tree/master/docs",
+ "gitlab_url_prefix": "https://gitlab.com/EuAndreh/songbooks/-/blob/master/docs",
+ "i18n_pagenames": i18n_pagenames
+}
+
+gettext_compact = False
diff --git a/bash/templates/layout-many-langs.language-picker.html b/bash/templates/layout-many-langs.language-picker.html
deleted file mode 100644
index 2262dd14..00000000
--- a/bash/templates/layout-many-langs.language-picker.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
- <dt>Languages</dt>
- {% for l in langs %}
- <dd>
- <a href="/{{ l }}/{{ version }}/{{ i18n_pagenames[l][pagename] }}.html">
- {% if l == current_lang %}
- <span class="rst-current-version">
- {{ l }}
- </span>
- {% else %}
- {{ l }}
- {% endif %}
- </a>
- </dd>
- {% endfor %}
diff --git a/bash/templates/layout-many-langs.page-path.html b/bash/templates/layout-many-langs.page-path.html
deleted file mode 100644
index 9e623f0d..00000000
--- a/bash/templates/layout-many-langs.page-path.html
+++ /dev/null
@@ -1 +0,0 @@
-<a href="/{{ current_lang }}/{{ v }}/{{ i18n_pagenames[current_lang][pagename] }}.html">
diff --git a/bash/templates/layout-many-langs.version-section.html b/bash/templates/layout-many-langs.version-section.html
deleted file mode 100644
index 88e9976d..00000000
--- a/bash/templates/layout-many-langs.version-section.html
+++ /dev/null
@@ -1 +0,0 @@
-{{version}} | {{ current_lang }}
diff --git a/bash/templates/layout-single-lang.html b/bash/templates/layout-single-lang.html
deleted file mode 100644
index 6c16a49c..00000000
--- a/bash/templates/layout-single-lang.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{%- extends "!layout.html" %}
-
-{#
-Taken from:
-https://github.com/readthedocs/sphinx_rtd_theme/blob/1d856256676d2b801a12c30e4a849c5abc466da9/docs/_templates/layout.html
-#}
-
-{% block footer %}
- <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
- <span class="rst-current-version" data-toggle="rst-current-version">
- <span class="fa fa-book"> {{project}}</span>
- {{version}}
- <span class="fa fa-caret-down"></span>
- </span>
- <div class="rst-other-versions">
- <dl>
- <dt>Versions</dt>
- {% for v in all_versions %}
- <dd>
- <a href="/{{ v }}/{{ pagename }}.html">
- {% if v == version %}
- <span class="rst-current-version">
- {{ v }}
- </span>
- {% else %}
- {{ v }}
- {% endif %}
- </a>
- </dd>
- {% endfor %}
- <dt>Downloads</dt>
- <dd>
- <a href="/{{ version }}/$PROJECT_UC.pdf">
- PDF
- </a>
- </dd>
- <dd>
- <a href="/{{ version }}/$PROJECT_UC.epub">
- EPUB
- </a>
- </dd>
- </dl>
- </div>
- </div>
-{% endblock %}
diff --git a/bash/templates/layout-single-lang.language-picker.html b/bash/templates/layout-single-lang.language-picker.html
deleted file mode 100644
index e69de29b..00000000
--- a/bash/templates/layout-single-lang.language-picker.html
+++ /dev/null
diff --git a/bash/templates/layout-single-lang.page-path.html b/bash/templates/layout-single-lang.page-path.html
deleted file mode 100644
index 287e71cb..00000000
--- a/bash/templates/layout-single-lang.page-path.html
+++ /dev/null
@@ -1 +0,0 @@
-<a href="/{{ v }}/{{ pagename }}.html">
diff --git a/bash/templates/layout-single-lang.version-section.html b/bash/templates/layout-single-lang.version-section.html
deleted file mode 100644
index cf5b0388..00000000
--- a/bash/templates/layout-single-lang.version-section.html
+++ /dev/null
@@ -1 +0,0 @@
-{{version}}
diff --git a/bash/templates/layout-many-langs.html b/bash/templates/layout.html
index 51323733..51323733 100644
--- a/bash/templates/layout-many-langs.html
+++ b/bash/templates/layout.html
diff --git a/bash/templates/layout.template.html b/bash/templates/layout.template.html
deleted file mode 100644
index 724f10de..00000000
--- a/bash/templates/layout.template.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{%- extends "!layout.html" %}
-
-{#
-Taken from:
-https://github.com/readthedocs/sphinx_rtd_theme/blob/1d856256676d2b801a12c30e4a849c5abc466da9/docs/_templates/layout.html
-#}
-
-{% block footer %}
- <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
- <span class="rst-current-version" data-toggle="rst-current-version">
- <span class="fa fa-book"> {{project}}</span>
- $VERSION_SECTION
- <span class="fa fa-caret-down"></span>
- </span>
- <div class="rst-other-versions">
- <dl>
- <dt>Versions</dt>
- {% for v in all_versions %}
- <dd>
- $PAGE_PATH
- {% if v == version %}
- <span class="rst-current-version">
- {{ v }}
- </span>
- {% else %}
- {{ v }}
- {% endif %}
- </a>
- </dd>
- {% endfor %}$LANGUAGE_PICKER
- <dt>Downloads</dt>
- <dd>
- <a href="/{{ version }}/${DOLLAR}PROJECT_UC.pdf">
- PDF
- </a>
- </dd>
- <dd>
- <a href="/{{ version }}/${DOLLAR}PROJECT_UC.epub">
- EPUB
- </a>
- </dd>
- </dl>
- </div>
- </div>
-{% endblock %}
diff --git a/bash/templates/sphinx-many-langs.conf.py b/bash/templates/sphinx-many-langs.conf.py
deleted file mode 100644
index 1deaecdb..00000000
--- a/bash/templates/sphinx-many-langs.conf.py
+++ /dev/null
@@ -1,14 +0,0 @@
-
-with open("i18n-pagenames.json", "r") as f:
- i18n_pagenames = json.loads(f.read())
-
-html_context = {
- "all_versions": all_versions,
- "langs": metadata["langs"],
- "current_lang": metadata["current_lang"],
- "sourcehut_url_prefix": "https://git.euandreh.xyz/songbooks/tree/master/docs",
- "gitlab_url_prefix": "https://gitlab.com/EuAndreh/songbooks/-/blob/master/docs",
- "i18n_pagenames": i18n_pagenames
-}
-
-gettext_compact = False
diff --git a/bash/templates/sphinx-single-lang.conf.py b/bash/templates/sphinx-single-lang.conf.py
deleted file mode 100644
index 71788b69..00000000
--- a/bash/templates/sphinx-single-lang.conf.py
+++ /dev/null
@@ -1,6 +0,0 @@
-
-html_context = {
- "all_versions": all_versions,
- "sourcehut_url_prefix": "https://git.euandreh.xyz/$PROJECT/tree/docs",
- "gitlab_url_prefix": "https://gitlab.com/EuAndreh/$PROJECT/-/blob/master/docs",
-}
diff --git a/bash/templates/utils.nix b/bash/templates/utils.nix
index 79b2aaeb..39c633a0 100644
--- a/bash/templates/utils.nix
+++ b/bash/templates/utils.nix
@@ -1,48 +1,45 @@
-{ pkgs, src }: rec {
- test = shellBuildInputs:
- pkgs.stdenv.mkDerivation {
- inherit src;
- name = "$PROJECT-test";
- buildInputs = shellBuildInputs;
- phases = "unpackPhase buildPhase";
- buildPhase = ''
- patchShebangs .
- ./tests.sh
- touch ${DOLLAR}out
- '';
+{ pkgs, src, projectBuildInputs }: rec {
+ test = pkgs.stdenv.mkDerivation {
+ inherit src;
+ name = "$PROJECT-test";
+ buildInputs = projectBuildInputs;
+ phases = "unpackPhase buildPhase";
+ buildPhase = ''
+ patchShebangs .
+ ./tests.sh
+ touch ${DOLLAR}out
+ '';
+ };
+ site = let
+ orgcss = builtins.fetchurl {
+ url = "https://gongzhitaao.org/orgcss/org.css";
+ sha256 = "1ym7askpqaa704bp72pjzz61p18q3dfjyfgqd6h206j6klvx0zfy";
};
- site = shellBuildInputs:
- let
- orgcss = builtins.fetchurl {
- url = "https://gongzhitaao.org/orgcss/org.css";
- sha256 = "1ym7askpqaa704bp72pjzz61p18q3dfjyfgqd6h206j6klvx0zfy";
- };
- htmlize = builtins.fetchurl {
- url =
- "https://raw.githubusercontent.com/hniksic/emacs-htmlize/release/1.55/htmlize.el";
- sha256 = "0p9bzvvwhpbkgx3p8m1f9yjx6abaly44jp24lkr77r1zii4nzgdd";
- };
- in pkgs.stdenv.mkDerivation {
- inherit src;
- name = "$PROJECT-site";
- buildInputs = shellBuildInputs;
- phases = "unpackPhase buildPhase";
- buildPhase = ''
- patchShebangs .
- mkdir ${DOLLAR}out
- cat ${DOLLAR}{orgcss} workflow/workflow.css > ${DOLLAR}out/styles.css
- ./scripts/build-site.sh ${DOLLAR}out ${DOLLAR}{htmlize}
- '';
+ htmlize = builtins.fetchurl {
+ url =
+ "https://raw.githubusercontent.com/hniksic/emacs-htmlize/release/1.55/htmlize.el";
+ sha256 = "0p9bzvvwhpbkgx3p8m1f9yjx6abaly44jp24lkr77r1zii4nzgdd";
};
- publishScript = shellBuildInputs:
- pkgs.writeShellScriptBin "publish.sh" ''
- set -Eeuo pipefail
-
- OUT_PATH=/data/static/$PROJECT/
- mkdir -p ${DOLLAR}OUT_PATH
- chmod -R +w ${DOLLAR}OUT_PATH # assert the previous dir is writable
- rm -rf ${DOLLAR}OUT_PATH
- cp -R ${DOLLAR}{site shellBuildInputs} ${DOLLAR}OUT_PATH
- chmod -R +w ${DOLLAR}OUT_PATH # make the new one writable too
+ in pkgs.stdenv.mkDerivation {
+ inherit src;
+ name = "$PROJECT-site";
+ buildInputs = projectBuildInputs;
+ phases = "unpackPhase buildPhase";
+ buildPhase = ''
+ patchShebangs .
+ mkdir ${DOLLAR}out
+ cat ${DOLLAR}{orgcss} workflow/workflow.css > ${DOLLAR}out/styles.css
+ ./scripts/build-site.sh ${DOLLAR}out ${DOLLAR}{htmlize}
'';
+ };
+ publishScript = pkgs.writeShellScriptBin "publish.sh" ''
+ set -Eeuo pipefail
+
+ OUT_PATH=/data/static/$PROJECT/
+ mkdir -p ${DOLLAR}OUT_PATH
+ chmod -R +w ${DOLLAR}OUT_PATH # assert the previous dir is writable
+ rm -rf ${DOLLAR}OUT_PATH
+ cp -R ${DOLLAR}{site} ${DOLLAR}OUT_PATH
+ chmod -R +w ${DOLLAR}OUT_PATH # make the new one writable too
+ '';
}