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 | ||||||
| @ -25,8 +25,9 @@ if [[ $ORG != MarlinFirmware ]]; then | |||||||
| fi | 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/') | ||||||
| @ -37,4 +38,8 @@ case "$#" in | |||||||
|   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; |   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; | ||||||
| esac | esac | ||||||
| 
 | 
 | ||||||
|  | if [[ $BRANCH == "(no" ]]; then | ||||||
|  |   echo "Git is busy with merge, rebase, etc." 1>&2 ; exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| echo "$ORG $FORK $REPO $TARG $BRANCH" | echo "$ORG $FORK $REPO $TARG $BRANCH" | ||||||
|  | |||||||
| @ -2,7 +2,15 @@ | |||||||
| # | # | ||||||
| # mfinit | # 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 | # 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 | MFINFO=$(mfinfo) || exit | ||||||
| IFS=' ' read -a INFO <<< "$MFINFO" | IFS=' ' read -a INFO <<< "$MFINFO" | ||||||
| TARG=${INFO[3]} | TARG=${INFO[3]} | ||||||
| 
 | 
 | ||||||
| if [[ ${INFO[4]} == "(no" ]]; then |  | ||||||
|   echo "Branch is unavailable!" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| case "$#" in | 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 ;; |   1 ) BRANCH=$1 ;; | ||||||
|   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; |   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; | ||||||
| esac | esac | ||||||
|  | |||||||
| @ -15,11 +15,6 @@ REPO=${INFO[2]} | |||||||
| TARG=${INFO[3]} | TARG=${INFO[3]} | ||||||
| BRANCH=${INFO[4]} | 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 [[ ! -z "$1" ]]; then { BRANCH=$1 ; git checkout $1 || exit 1; } fi | ||||||
| 
 | 
 | ||||||
| if [[ $BRANCH == $TARG ]]; then | if [[ $BRANCH == $TARG ]]; then | ||||||
|  | |||||||
| @ -6,6 +6,11 @@ | |||||||
| # Great way to clean up your branches after messing around a lot | # 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..." | echo "Pruning Merged Branches..." | ||||||
| git branch --merged | egrep -v "^\*|RC|RCBugFix|dev" | xargs -n 1 git branch -d | git branch --merged | egrep -v "^\*|RC|RCBugFix|dev" | xargs -n 1 git branch -d | ||||||
| echo | 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 | git branch -vv | egrep -v "^\*|RC|RCBugFix|dev" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D | ||||||
| echo | echo | ||||||
| 
 | 
 | ||||||
| echo "You may want to remove these remote tracking references..." | echo "You may want to remove (or checkout) these refs..." | ||||||
| comm -23 \ | comm -23 \ | ||||||
|   <(git branch --all | sed 's/^[\* ] //' | grep origin/ | grep -v "\->" | awk '{ print $1; }' | sed 's/remotes\/origin\///') \ |   <(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; }') \ |   <(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 | 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 | MFINFO=$(mfinfo) || exit | ||||||
| IFS=' ' read -a INFO <<< "$MFINFO" | IFS=' ' read -a INFO <<< "$MFINFO" | ||||||
| 
 | 
 | ||||||
| if [[ ${INFO[4]} == "(no" ]]; then |  | ||||||
|   echo "Branch is unavailable!" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| case "$#" in | case "$#" in | ||||||
|   0 ) ;; |   0 ) ;; | ||||||
|   * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; |   * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; | ||||||
|  | |||||||
| @ -15,11 +15,6 @@ REPO=${INFO[2]} | |||||||
| TARG=${INFO[3]} | TARG=${INFO[3]} | ||||||
| OLDBRANCH=${INFO[4]} | OLDBRANCH=${INFO[4]} | ||||||
| 
 | 
 | ||||||
| if [[ $OLDBRANCH == "(no" ]]; then |  | ||||||
|   echo "Branch is unavailable!" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| case "$#" in | case "$#" in | ||||||
|   0 ) BRANCH=$OLDBRANCH ;; |   0 ) BRANCH=$OLDBRANCH ;; | ||||||
|   1 ) BRANCH=$1 ;; |   1 ) BRANCH=$1 ;; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user