Skip to content

Commit

Permalink
🔨 Update git helper scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkyhead committed Dec 25, 2021
1 parent 20c7477 commit 5efef86
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 27 deletions.
14 changes: 9 additions & 5 deletions buildroot/share/git/mffp
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
#!/usr/bin/env bash
#
# mffp [1|2|3] [commit-id]
# mffp [1|2] [ref]
#
# 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
REF=${2:-HEAD}
else
elif [[ $# == 1 ]]; then
MFINFO=$(mfinfo) || exit 1
REF=${1:-HEAD}
else
usage
fi

IFS=' ' read -a INFO <<< "$MFINFO"
Expand Down
28 changes: 16 additions & 12 deletions buildroot/share/git/mfinfo
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@
#
# mfinfo
#
# Provide the following info about the working directory:
# Print the following info about the working copy:
#
# - Remote (upstream) Org name (MarlinFirmware)
# - Remote (origin) Org name (your Github username)
# - 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)
# - 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')
[[ -z $CURR ]] && { echo "No git repository here!" 1>&2 ; exit 1; }
Expand All @@ -26,37 +30,37 @@ FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/')

# Defaults if no arguments given
BRANCH=$CURR
INDEX=1
MORE=""
INDEX=2

# Loop through arguments
while [[ $# -gt 0 ]]; do
# Get an arg and maybe a val to go with it
opt="$1" ; shift ; val="$1"

# Split up an arg containing =
IFS='=' read -a PARTS <<<"$opt"
[[ "${PARTS[1]}" != "" ]] && { EQUALS=1 ; opt="${PARTS[0]}" ; val="${PARTS[1]}" ; }

GOODVAL=1
if [[ "$val" =~ ^-{1,2}.* || ! "$opt" =~ ^-{1,2}.* ]]; then
GOODVAL=0
val=""
fi

case "$opt" in
-*|--*) MORE="$MORE$opt " ; [[ $EQUALS == 1 ]] && MORE="$MORE=$val" ;;
1|2|3) INDEX=$opt ;;
-*|--*) MORE=" $MORE$opt" ; ((EQUALS)) && MORE="$MORE=$val" ;;
1|2) INDEX=$opt ;;
*) BRANCH="$opt" ;;
esac

done

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 ;;
MarlinDocumentation ) TARG=master ;;
AutoBuildMarlin ) TARG=master ;;
esac

[[ $BRANCH =~ ^[123]$ ]] && USAGE=1

[[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2|3] [branch]" 1>&2 ; exit 1 ; }
[[ $USAGE == 1 ]] && { echo "usage: `basename $0` [1|2] [branch]" 1>&2 ; exit 1 ; }

echo "$ORG $FORK $REPO $TARG $BRANCH $CURR $MORE"
echo "$ORG $FORK $REPO $TARG $BRANCH $CURR$MORE"
6 changes: 3 additions & 3 deletions buildroot/share/git/mfnew
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#

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; }
Expand All @@ -19,12 +19,12 @@ BRANCH=pr_for_$TARG-$(date +"%G-%m-%d_%H.%M.%S")
# BRANCH can be given as the last argument
case "$#" in
1 ) case "$1" in
1|2|3) ;;
1|2) ;;
*) BRANCH=$1 ;;
esac
;;
2 ) case "$1" in
1|2|3) BRANCH=$2 ;;
1|2) BRANCH=$2 ;;
*) usage ; exit 1 ;;
esac
;;
Expand Down
6 changes: 3 additions & 3 deletions buildroot/share/git/mfpr
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#!/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
IFS=' ' read -a INFO <<< "$MFINFO"
Expand Down
4 changes: 2 additions & 2 deletions buildroot/share/git/mfqp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# mfqp [1|2|3]
# mfqp [1|2]
#
# - git add .
# - git commit --amend
Expand All @@ -24,7 +24,7 @@ while [ $IND -lt ${#INFO[@]} ]; do
let IND+=1
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 ; }

Expand Down
4 changes: 2 additions & 2 deletions buildroot/share/git/mfrb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# 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
Expand All @@ -21,7 +21,7 @@ while [ $IND -lt ${#INFO[@]} ]; do
let IND+=1
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
git rebase upstream/$TARG && git rebase -i upstream/$TARG

0 comments on commit 5efef86

Please sign in to comment.