Skip to content
Snippets Groups Projects
Commit dd436cee authored by Scott Lahteine's avatar Scott Lahteine
Browse files

Add 'mfdoc' and 'mfpub' scripts to help with documentation

parent 78308b1c
Branches
Tags
No related merge requests found
#!/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
...@@ -27,6 +27,7 @@ fi ...@@ -27,6 +27,7 @@ fi
case "$REPO" in case "$REPO" in
Marlin ) TARG=RCBugFix ;; Marlin ) TARG=RCBugFix ;;
MarlinDev ) TARG=dev ;; MarlinDev ) TARG=dev ;;
MarlinDocumentation ) TARG=master ;;
esac esac
FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/') FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/')
......
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment