forked from square/okhttp
-
Notifications
You must be signed in to change notification settings - Fork 3
/
deploy_website.sh
executable file
·73 lines (60 loc) · 2.19 KB
/
deploy_website.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
# The website is built using MkDocs with the Material theme.
# https://squidfunk.github.io/mkdocs-material/
# It requires Python to run.
# Install the packages with the following command:
# pip install mkdocs mkdocs-material mkdocs-redirects
set -ex
REPO="[email protected]:square/okhttp.git"
DIR=temp-clone
# Delete any existing temporary website clone
rm -rf $DIR
# Clone the current repo into temp folder
git clone $REPO $DIR
# Replace `git clone` with these lines to hack on the website locally
# cp -a . "../okhttp-website"
# mv "../okhttp-website" "$DIR"
# Move working directory into temp folder
cd $DIR
# Generate the API docs
./gradlew \
:mockwebserver:dokkaGfm \
:okhttp-brotli:dokkaGfm \
:okhttp-dnsoverhttps:dokkaGfm \
:logging-interceptor:dokkaGfm \
:okhttp-sse:dokkaGfm \
:okhttp-tls:dokkaGfm \
:okhttp-urlconnection:dokkaGfm \
:okhttp:dokkaGfm
# Dokka filenames like `-http-url/index.md` don't work well with MkDocs <title> tags.
# Assign metadata to the file's first Markdown heading.
# https://www.mkdocs.org/user-guide/writing-your-docs/#meta-data
title_markdown_file() {
TITLE_PATTERN="s/^[#]+ *(.*)/title: \1 - OkHttp/"
echo "---" > "$1.fixed"
cat $1 | sed -E "$TITLE_PATTERN" | grep "title: " | head -n 1 >> "$1.fixed"
echo "---" >> "$1.fixed"
echo >> "$1.fixed"
cat $1 >> "$1.fixed"
mv "$1.fixed" "$1"
}
set +x
for MARKDOWN_FILE in $(find docs/4.x -name '*.md'); do
echo $MARKDOWN_FILE
title_markdown_file $MARKDOWN_FILE
done
set -x
# Copy in special files that GitHub wants in the project root.
cat README.md | grep -v 'project website' > docs/index.md
cp CHANGELOG.md docs/changelogs/changelog.md
cp CONTRIBUTING.md docs/contribute/contributing.md
# Build the site and push the new files up to GitHub
mkdocs gh-deploy
# Restore Javadocs from 1.x, 2.x, and 3.x.
git checkout gh-pages
git cherry-pick bb229b9dcc9a21a73edbf8d936bea88f52e0a3ff
git cherry-pick c695732f1d4aea103b826876c077fbfea630e244
git push
# Delete our temp folder
cd ..
rm -rf $DIR