🔨 Update git helper scripts

This commit is contained in:
Scott Lahteine 2021-11-03 07:02:21 -05:00 committed by Scott Lahteine
parent 20c747753d
commit 5efef86cfa
6 changed files with 35 additions and 27 deletions

View file

@ -1,19 +1,23 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# mffp [1|2|3] [commit-id] # mffp [1|2] [ref]
# #
# Push the given commit (or HEAD) upstream immediately. # Push the given commit (or HEAD) upstream immediately.
# By default: `git push upstream HEAD:bugfix-1.1.x` # By default: `git push upstream HEAD:bugfix-2.0.x`
# #
[[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { echo "usage: `basename $0` [1|2|3] [commit-id]" 1>&2 ; exit 1; } usage() { echo "usage: `basename $0` [1|2] [ref]" 1>&2 }
if [[ $1 == '1' || $1 == '2' || $1 == '3' ]]; then [[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { usage ; exit 1; }
if [[ $1 == '1' || $1 == '2' ]]; then
MFINFO=$(mfinfo "$1") || exit 1 MFINFO=$(mfinfo "$1") || exit 1
REF=${2:-HEAD} REF=${2:-HEAD}
else elif [[ $# == 1 ]]; then
MFINFO=$(mfinfo) || exit 1 MFINFO=$(mfinfo) || exit 1
REF=${1:-HEAD} REF=${1:-HEAD}
else
usage
fi fi
IFS=' ' read -a INFO <<< "$MFINFO" IFS=' ' read -a INFO <<< "$MFINFO"

View file

@ -2,15 +2,19 @@
# #
# mfinfo # mfinfo
# #
# Provide the following info about the working directory: # Print the following info about the working copy:
# #
# - Remote (upstream) Org name (MarlinFirmware) # - Remote (upstream) Org name (MarlinFirmware)
# - Remote (origin) Org name (your Github username) # - Remote (origin) Org name (your Github username)
# - Repo Name (Marlin, MarlinDocumentation) # - Repo Name (Marlin, MarlinDocumentation)
# - PR Target branch (bugfix-1.1.x, bugfix-2.0.x, dev-2.1.x, etc.) # - PR Target branch (e.g., bugfix-2.0.x)
# - Branch Arg (the branch argument or current branch) # - Branch Arg (the branch argument or current branch)
# - Current Branch # - Current Branch
# #
# Example output
# > mfinfo -q ongoing
# MarlinFirmware john.doe Marlin bugfix-2.0.x ongoing bugfix-2.0.x -q
#
CURR=$(git branch 2>/dev/null | grep ^* | sed 's/\* //g') CURR=$(git branch 2>/dev/null | grep ^* | sed 's/\* //g')
[[ -z $CURR ]] && { echo "No git repository here!" 1>&2 ; exit 1; } [[ -z $CURR ]] && { echo "No git repository here!" 1>&2 ; exit 1; }
@ -26,37 +30,37 @@ FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/')
# Defaults if no arguments given # Defaults if no arguments given
BRANCH=$CURR BRANCH=$CURR
INDEX=1 MORE=""
INDEX=2
# Loop through arguments
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
# Get an arg and maybe a val to go with it
opt="$1" ; shift ; val="$1" opt="$1" ; shift ; val="$1"
# Split up an arg containing =
IFS='=' read -a PARTS <<<"$opt" IFS='=' read -a PARTS <<<"$opt"
[[ "${PARTS[1]}" != "" ]] && { EQUALS=1 ; opt="${PARTS[0]}" ; val="${PARTS[1]}" ; } [[ "${PARTS[1]}" != "" ]] && { EQUALS=1 ; opt="${PARTS[0]}" ; val="${PARTS[1]}" ; }
GOODVAL=1
if [[ "$val" =~ ^-{1,2}.* || ! "$opt" =~ ^-{1,2}.* ]]; then if [[ "$val" =~ ^-{1,2}.* || ! "$opt" =~ ^-{1,2}.* ]]; then
GOODVAL=0
val="" val=""
fi fi
case "$opt" in case "$opt" in
-*|--*) MORE="$MORE$opt " ; [[ $EQUALS == 1 ]] && MORE="$MORE=$val" ;; -*|--*) MORE=" $MORE$opt" ; ((EQUALS)) && MORE="$MORE=$val" ;;
1|2|3) INDEX=$opt ;; 1|2) INDEX=$opt ;;
*) BRANCH="$opt" ;; *) BRANCH="$opt" ;;
esac esac
done done
case "$REPO" in case "$REPO" in
Marlin ) TARG=bugfix-2.0.x ; [[ $INDEX == 1 ]] && TARG=bugfix-1.1.x ; [[ $INDEX == 3 ]] && TARG=dev-2.1.x ;; Marlin ) TARG=bugfix-2.0.x ; ((INDEX == 1)) && TARG=bugfix-1.1.x ; [[ $BRANCH =~ ^[12]$ ]] && USAGE=1 ;;
Configurations ) TARG=import-2.0.x ;; Configurations ) TARG=import-2.0.x ;;
MarlinDocumentation ) TARG=master ;; MarlinDocumentation ) TARG=master ;;
AutoBuildMarlin ) TARG=master ;; AutoBuildMarlin ) TARG=master ;;
esac esac
[[ $BRANCH =~ ^[123]$ ]] && USAGE=1 [[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2] [branch]" 1>&2 ; exit 1 ; }
[[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2|3] [branch]" 1>&2 ; exit 1 ; } echo "$ORG $FORK $REPO $TARG $BRANCH $CURR$MORE"
echo "$ORG $FORK $REPO $TARG $BRANCH $CURR $MORE"

View file

@ -6,7 +6,7 @@
# #
usage() { usage() {
echo "usage: `basename $0` [1|2|3] [name]" 1>&2 echo "usage: `basename $0` [1|2] [name]" 1>&2
} }
[[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { usage; exit 1; } [[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { usage; exit 1; }
@ -19,12 +19,12 @@ BRANCH=pr_for_$TARG-$(date +"%G-%m-%d_%H.%M.%S")
# BRANCH can be given as the last argument # BRANCH can be given as the last argument
case "$#" in case "$#" in
1 ) case "$1" in 1 ) case "$1" in
1|2|3) ;; 1|2) ;;
*) BRANCH=$1 ;; *) BRANCH=$1 ;;
esac esac
;; ;;
2 ) case "$1" in 2 ) case "$1" in
1|2|3) BRANCH=$2 ;; 1|2) BRANCH=$2 ;;
*) usage ; exit 1 ;; *) usage ; exit 1 ;;
esac esac
;; ;;

View file

@ -1,11 +1,11 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# mfpr [1|2|3] # mfpr [1|2]
# #
# Make a PR against bugfix-1.1.x or bugfix-2.0.x # Make a PR targeted to MarlinFirmware/[repo]
# #
[[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "usage: `basename $0` [1|2|3] [branch]" 1>&2 ; exit 1; } [[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "usage: `basename $0` [1|2] [branch]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1 MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO" IFS=' ' read -a INFO <<< "$MFINFO"

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# mfqp [1|2|3] # mfqp [1|2]
# #
# - git add . # - git add .
# - git commit --amend # - git commit --amend
@ -24,7 +24,7 @@ while [ $IND -lt ${#INFO[@]} ]; do
let IND+=1 let IND+=1
done done
[[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2|3]" 1>&2 ; exit 1 ; } [[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2]" 1>&2 ; exit 1 ; }
[[ $FORCE != 1 && $CURR == $TARG && $REPO != "MarlinDocumentation" ]] && { echo "Don't alter the PR Target branch."; exit 1 ; } [[ $FORCE != 1 && $CURR == $TARG && $REPO != "MarlinDocumentation" ]] && { echo "Don't alter the PR Target branch."; exit 1 ; }

View file

@ -2,7 +2,7 @@
# #
# mfrb # mfrb
# #
# Do "git rebase -i" against the "target" branch (bugfix-1.1.x, bugfix-2.0.x, dev-2.1.x, or master) # Do "git rebase -i" against the repo's "target" branch
# #
MFINFO=$(mfinfo "$@") || exit 1 MFINFO=$(mfinfo "$@") || exit 1
@ -21,7 +21,7 @@ while [ $IND -lt ${#INFO[@]} ]; do
let IND+=1 let IND+=1
done done
[[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2|3]" 1>&2 ; exit 1 ; } [[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2]" 1>&2 ; exit 1 ; }
[[ $QUICK ]] || git fetch upstream [[ $QUICK ]] || git fetch upstream
git rebase upstream/$TARG && git rebase -i upstream/$TARG git rebase upstream/$TARG && git rebase -i upstream/$TARG