-
Notifications
You must be signed in to change notification settings - Fork 13
/
sync-api-docs.sh
executable file
·42 lines (34 loc) · 1.05 KB
/
sync-api-docs.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#! /usr/bin/env bash
# Copyright (C) 2022 Sebastian Pipping <[email protected]>
# Licensed under the MIT license
require_clean_git() {
git diff --quiet || exit 1
git diff --cached --quiet || exit 1
}
PS4='# '
set -x
set -e
abstargetdir="$(dirname "$0")"/doc/api/latest
[[ ${abstargetdir:0:1} != / ]] && abstargetdir="${PWD}/${abstargetdir}"
require_clean_git
[[ -d "${abstargetdir}" ]] && git rm -r "${abstargetdir}"
# Build fresh docs from libexpat Git master
abstempdir="$(mktemp -d)"
absversionfile="$(mktemp)"
(
cd "${abstempdir}"
git clone https://github.com/libexpat/libexpat.git
cd libexpat
git describe --tags | sed -E 's,R_(.+)_(.+)_(.+),\1.\2.\3,' | tee "${absversionfile}"
)
files_to_copy=(
ok.min.css
reference.html
style.css
)
mkdir -p "${abstargetdir}"
( cd "${abstempdir}"/libexpat/expat/doc/ && cp -v "${files_to_copy[@]}" "${abstargetdir}" )
mv -v "${abstargetdir}"/{reference,index}.html
rm -Rf "${abstempdir}"
git add "${abstargetdir}"
git ci -m "API docs: Update to version $(cat "${absversionfile}")"