mirror of
https://github.com/depp/syncfiles.git
synced 2024-11-29 03:51:28 +00:00
50 lines
1.0 KiB
Bash
50 lines
1.0 KiB
Bash
|
#!/bin/sh
|
||
|
# Build the site and push it to GitHub pages.
|
||
|
set -e
|
||
|
|
||
|
root=$(git rev-parse --show-toplevel)
|
||
|
cd "$root"
|
||
|
|
||
|
if ! command -v frum >/dev/null ; then
|
||
|
echo >&2 "Error: frum is not installed"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! git diff-index --quiet --cached HEAD -- docs ; then
|
||
|
echo >&2 "Error: uncommitted changes"
|
||
|
exit 1
|
||
|
fi
|
||
|
if ! git diff-files --quiet docs ; then
|
||
|
echo >&2 "Error: uncommitted changes"
|
||
|
exit 1
|
||
|
fi
|
||
|
branch=$(git symbolic-ref HEAD)
|
||
|
if test "$branch" != refs/heads/main ; then
|
||
|
echo >&2 "Error: branch is not main"
|
||
|
exit 1
|
||
|
fi
|
||
|
commit="$(git rev-parse HEAD)"
|
||
|
|
||
|
echo >&2 "Checking out gh-pages..."
|
||
|
if test -d gh-pages ; then
|
||
|
branch=$(git -C gh-pages symbolic-ref HEAD)
|
||
|
if test "$branch" != refs/heads/gh-pages ; then
|
||
|
echo >&2 "Error: gh-pages dir does not have gh-pages branch"
|
||
|
exit 1
|
||
|
fi
|
||
|
else
|
||
|
git worktree add gh-pages
|
||
|
fi
|
||
|
|
||
|
echo >&2 "Building site..."
|
||
|
(
|
||
|
cd docs
|
||
|
eval "$(sh -c 'frum init')"
|
||
|
bundle exec jekyll build --destination ../gh-pages
|
||
|
)
|
||
|
|
||
|
echo >&2 "Committing..."
|
||
|
cd gh-pages
|
||
|
git add .
|
||
|
git commit -m "Generated from commit ${commit}"
|