Merge pull request #6406 from thinkyhead/test_remote
Refresh Marlin git helper scripts
This commit is contained in:
		
						commit
						e66d9f1313
					
				
							
								
								
									
										24
									
								
								buildroot/share/git/mfadd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								buildroot/share/git/mfadd
									
									
									
									
									
										Executable file
									
								
							| @ -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" | ||||
							
								
								
									
										48
									
								
								buildroot/share/git/mfdoc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								buildroot/share/git/mfdoc
									
									
									
									
									
										Executable file
									
								
							| @ -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 | ||||
| @ -27,6 +27,7 @@ fi | ||||
| case "$REPO" in | ||||
|   Marlin              ) TARG=RCBugFix ;; | ||||
|   MarlinDev           ) TARG=dev ;; | ||||
|   MarlinDocumentation ) TARG=master ;; | ||||
| esac | ||||
| 
 | ||||
| FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/') | ||||
| @ -37,4 +38,8 @@ case "$#" in | ||||
|   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; | ||||
| esac | ||||
| 
 | ||||
| if [[ $BRANCH == "(no" ]]; then | ||||
|   echo "Git is busy with merge, rebase, etc." 1>&2 ; exit 1 | ||||
| fi | ||||
| 
 | ||||
| echo "$ORG $FORK $REPO $TARG $BRANCH" | ||||
|  | ||||
| @ -2,7 +2,15 @@ | ||||
| # | ||||
| # mfinit | ||||
| # | ||||
| # Create the upstream repository for Marlin | ||||
| # Create the upstream remote for a forked repository | ||||
| # | ||||
| 
 | ||||
| git remote add upstream git@github.com:MarlinFirmware/Marlin.git | ||||
| REPO=$(git remote get-url origin 2>/dev/null | sed -E 's/.*\/(.*)\.git/\1/') | ||||
| 
 | ||||
| if [[ -z $REPO ]]; then | ||||
|   echo "`basename $0`: No 'origin' remote found." 1>&2 ; exit 1 | ||||
| fi | ||||
| 
 | ||||
| git remote add upstream "git@github.com:MarlinFirmware/$REPO.git" | ||||
| 
 | ||||
| git fetch upstream | ||||
| @ -2,20 +2,15 @@ | ||||
| # | ||||
| # mfnew | ||||
| # | ||||
| # Create a new branch based on RCBugFix or dev a given branch name | ||||
| # Create a new branch from the default target with the given name | ||||
| # | ||||
| 
 | ||||
| MFINFO=$(mfinfo) || exit | ||||
| IFS=' ' read -a INFO <<< "$MFINFO" | ||||
| TARG=${INFO[3]} | ||||
| 
 | ||||
| if [[ ${INFO[4]} == "(no" ]]; then | ||||
|   echo "Branch is unavailable!" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| case "$#" in | ||||
|   0 ) BRANCH=pr_for_$TARG-$(date +"%G-%d-%m|%H:%M:%S") ;; | ||||
|   0 ) BRANCH=pr_for_$TARG-$(date +"%G-%m-%d_%H.%M.%S") ;; | ||||
|   1 ) BRANCH=$1 ;; | ||||
|   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; | ||||
| esac | ||||
|  | ||||
| @ -15,11 +15,6 @@ REPO=${INFO[2]} | ||||
| TARG=${INFO[3]} | ||||
| BRANCH=${INFO[4]} | ||||
| 
 | ||||
| if [[ $BRANCH == "(no" ]]; then | ||||
|   echo "Git is busy with merge, rebase, etc." | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| if [[ ! -z "$1" ]]; then { BRANCH=$1 ; git checkout $1 || exit 1; } fi | ||||
| 
 | ||||
| if [[ $BRANCH == $TARG ]]; then | ||||
|  | ||||
| @ -6,6 +6,11 @@ | ||||
| # Great way to clean up your branches after messing around a lot | ||||
| # | ||||
| 
 | ||||
| echo "Fetching latest upstream and origin..." | ||||
| git fetch upstream | ||||
| git fetch origin | ||||
| echo | ||||
| 
 | ||||
| echo "Pruning Merged Branches..." | ||||
| git branch --merged | egrep -v "^\*|RC|RCBugFix|dev" | xargs -n 1 git branch -d | ||||
| echo | ||||
| @ -14,9 +19,9 @@ echo "Pruning Remotely-deleted Branches..." | ||||
| git branch -vv | egrep -v "^\*|RC|RCBugFix|dev" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D | ||||
| echo | ||||
| 
 | ||||
| echo "You may want to remove these remote tracking references..." | ||||
| echo "You may want to remove (or checkout) these refs..." | ||||
| comm -23 \ | ||||
|   <(git branch --all | sed 's/^[\* ] //' | grep origin/ | grep -v "\->" | awk '{ print $1; }' | sed 's/remotes\/origin\///') \ | ||||
|   <(git branch --all | sed 's/^[\* ] //' | grep -v remotes/ | awk '{ print $1; }') \ | ||||
|   | awk '{ print "git branch -d -r origin/" $1; }' | ||||
|   | awk '{ print "git branch -d -r origin/" $1; print "git checkout origin/" $1 " -b " $1; }' | ||||
| echo | ||||
|  | ||||
							
								
								
									
										90
									
								
								buildroot/share/git/mfpub
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										90
									
								
								buildroot/share/git/mfpub
									
									
									
									
									
										Executable file
									
								
							| @ -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 | ||||
							
								
								
									
										19
									
								
								buildroot/share/git/mfqp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								buildroot/share/git/mfqp
									
									
									
									
									
										Executable file
									
								
							| @ -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 | ||||
| @ -8,11 +8,6 @@ | ||||
| MFINFO=$(mfinfo) || exit | ||||
| IFS=' ' read -a INFO <<< "$MFINFO" | ||||
| 
 | ||||
| if [[ ${INFO[4]} == "(no" ]]; then | ||||
|   echo "Branch is unavailable!" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| case "$#" in | ||||
|   0 ) ;; | ||||
|   * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; | ||||
|  | ||||
| @ -15,11 +15,6 @@ REPO=${INFO[2]} | ||||
| TARG=${INFO[3]} | ||||
| OLDBRANCH=${INFO[4]} | ||||
| 
 | ||||
| if [[ $OLDBRANCH == "(no" ]]; then | ||||
|   echo "Branch is unavailable!" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| case "$#" in | ||||
|   0 ) BRANCH=$OLDBRANCH ;; | ||||
|   1 ) BRANCH=$1 ;; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user