48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/bash -x
|
|
|
|
git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'`
|
|
|
|
if ! (git remote set-branches --add origin gh-pages && git fetch -q); then
|
|
echo "No gh-pages, so not syncing"
|
|
exit 0
|
|
fi
|
|
|
|
if ! [ -d docs/target/generated-docs ]; then
|
|
echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
|
|
exit 0
|
|
fi
|
|
|
|
# Stash any outstanding changes
|
|
###################################################################
|
|
git diff-index --quiet HEAD
|
|
dirty=$?
|
|
if [ "$dirty" != "0" ]; then git stash; fi
|
|
|
|
# Switch to gh-pages branch to sync it with master
|
|
###################################################################
|
|
git checkout gh-pages
|
|
|
|
for f in docs/target/generated-docs/*; do
|
|
file=${f#docs/target/generated-docs/*}
|
|
if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
|
|
# Not ignored...
|
|
cp -rf $f .
|
|
git add -A $file
|
|
fi
|
|
done
|
|
|
|
git commit -a -m "Sync docs from master to gh-pages"
|
|
|
|
# Uncomment the following push if you want to auto push to
|
|
# the gh-pages branch whenever you commit to master locally.
|
|
# This is a little extreme. Use with care!
|
|
###################################################################
|
|
#git push origin gh-pages
|
|
|
|
# Finally, switch back to the master branch and exit block
|
|
git checkout master
|
|
if [ "$dirty" != "0" ]; then git stash pop; fi
|
|
|
|
exit 0
|
|
|