Scott Lahteine
8 years ago
3 changed files with 141 additions and 2 deletions
@ -0,0 +1,48 @@ |
|||
#!/usr/bin/env bash |
|||
# |
|||
# mfdoc |
|||
# |
|||
# Start Jekyll in watch mode to work on Marlin Documentation and preview locally |
|||
# |
|||
|
|||
MFINFO=$(mfinfo "$@") || exit |
|||
IFS=' ' read -a INFO <<< "$MFINFO" |
|||
ORG=${INFO[0]} |
|||
REPO=${INFO[2]} |
|||
BRANCH=${INFO[4]} |
|||
|
|||
if [[ $ORG != "MarlinFirmware" || $REPO != "MarlinDocumentation" ]]; then |
|||
echo "Wrong repository." |
|||
exit |
|||
fi |
|||
|
|||
if [[ $BRANCH != "master" ]]; then |
|||
echo "Stashing changes and changing to master." |
|||
git stash |
|||
git checkout master |
|||
fi |
|||
|
|||
opensite() { |
|||
TOOL=$(which gnome-open xdg-open open | awk '{ print $1 }') |
|||
URL="http://127.0.0.1:4000/" |
|||
if [ -z "$TOOL" ]; then |
|||
echo "Can't find a tool to open the URL:" |
|||
echo $URL |
|||
else |
|||
echo "Opening preview site in the browser..." |
|||
"$TOOL" "$URL" |
|||
fi |
|||
} |
|||
|
|||
echo "Previewing MarlinDocumentation..." |
|||
|
|||
# wait to open the url for about 8s |
|||
( sleep 8; opensite ) & |
|||
|
|||
bundle exec jekyll serve --watch --incremental |
|||
|
|||
if [[ $BRANCH != "master" ]]; then |
|||
echo "Restoring branch '$BRANCH'" |
|||
git checkout $BRANCH |
|||
git stash pop |
|||
fi |
@ -0,0 +1,90 @@ |
|||
#!/usr/bin/env bash |
|||
# |
|||
# mfpub |
|||
# |
|||
# Use Jekyll to publish Marlin Documentation to the HTML site |
|||
# |
|||
|
|||
MFINFO=$(mfinfo "$@") || exit |
|||
IFS=' ' read -a INFO <<< "$MFINFO" |
|||
ORG=${INFO[0]} |
|||
FORK=${INFO[1]} |
|||
REPO=${INFO[2]} |
|||
TARG=${INFO[3]} |
|||
BRANCH=${INFO[4]} |
|||
|
|||
if [[ $ORG != "MarlinFirmware" || $REPO != "MarlinDocumentation" ]]; then |
|||
echo "Wrong repository." |
|||
exit |
|||
fi |
|||
|
|||
if [[ $BRANCH == "gh-pages" ]]; then |
|||
echo "Can't build from 'gh-pages.' Only the Jekyll branches." |
|||
bundle exec jekyll serve --watch |
|||
exit |
|||
fi |
|||
|
|||
if [[ $BRANCH != "master" ]]; then |
|||
echo "Don't forget to update and push 'master'!" |
|||
fi |
|||
|
|||
git checkout $BRANCH |
|||
|
|||
echo "Generating MarlinDocumentation..." |
|||
|
|||
# GOJF Card |
|||
git stash |
|||
|
|||
TMPFOLDER=$( mktemp -d ) |
|||
COMMIT=$( git log --format="%H" -n 1 ) |
|||
|
|||
# Clean out changes and other junk in the branch |
|||
git reset --hard |
|||
git clean -d -f |
|||
|
|||
# Push 'master' to the fork and make a proper PR... |
|||
if [[ $BRANCH == "master" ]]; then |
|||
|
|||
if [ -z "$(git branch -vv | grep ^\* | grep \\[origin)" ]; then firstpush; fi |
|||
|
|||
git push -f origin |
|||
|
|||
TOOL=$(which gnome-open xdg-open open | awk '{ print $1 }') |
|||
URL="https://github.com/$ORG/$REPO/compare/$TARG...$FORK:$BRANCH?expand=1" |
|||
|
|||
if [ -z "$TOOL" ]; then |
|||
echo "Can't find a tool to open the URL:" |
|||
echo $URL |
|||
else |
|||
echo "Opening a New PR Form..." |
|||
"$TOOL" "$URL" |
|||
fi |
|||
|
|||
fi |
|||
|
|||
# Uncomment to compress the final html files |
|||
# mv ./_plugins/jekyll-press.rb-disabled ./_plugins/jekyll-press.rb |
|||
# bundle install |
|||
|
|||
bundle exec jekyll build --profile --trace --no-watch |
|||
bundle exec htmlproofer ./_site --only-4xx --allow-hash-href --check-favicon --check-html --url-swap ".*marlinfw.org/:/" |
|||
|
|||
rsync -av _site/ ${TMPFOLDER}/ |
|||
|
|||
# Clean out changes and other junk in the branch |
|||
git reset --hard |
|||
git clean -d -f |
|||
|
|||
# Sync built-site with gh-pages |
|||
git checkout gh-pages |
|||
rsync -av ${TMPFOLDER}/ ./ |
|||
|
|||
# Commit and push the new live site directly |
|||
git add --all |
|||
git commit --message "Built from ${COMMIT}" |
|||
git push upstream |
|||
|
|||
rm -rf ${TMPFOLDER} |
|||
|
|||
# Go back to the branch we started from |
|||
git checkout $BRANCH |
Loading…
Reference in new issue