Scott Lahteine
8 years ago
committed by
GitHub
11 changed files with 207 additions and 28 deletions
@ -0,0 +1,24 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# |
||||
|
# mfadd |
||||
|
# |
||||
|
# Add a remote and fetch it |
||||
|
# |
||||
|
|
||||
|
MFINFO=$(mfinfo) || exit |
||||
|
|
||||
|
IFS=' ' read -a INFO <<< "$MFINFO" |
||||
|
|
||||
|
REPO=${INFO[2]} |
||||
|
OLDBRANCH=${INFO[4]} |
||||
|
|
||||
|
case "$#" in |
||||
|
1 ) USER=$1 ;; |
||||
|
* ) echo "Usage: `basename $0` [user]" 1>&2 ; exit 1 ;; |
||||
|
esac |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
echo "Adding and fetching $USER..." |
||||
|
|
||||
|
git remote add -f "$USER" "git@github.com:$USER/$REPO.git" |
@ -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 |
@ -0,0 +1,19 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# |
||||
|
# mfqp |
||||
|
# |
||||
|
# Add all changed files, commit as "patch", do `mfrb` and `git push -f` |
||||
|
# |
||||
|
|
||||
|
MFINFO=$(mfinfo) || exit |
||||
|
IFS=' ' read -a INFO <<< "$MFINFO" |
||||
|
|
||||
|
case "$#" in |
||||
|
0 ) ;; |
||||
|
* ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; |
||||
|
esac |
||||
|
|
||||
|
git add * .travis.yml |
||||
|
git commit -m "patch" |
||||
|
mfrb |
||||
|
git push -f |
Loading…
Reference in new issue