From 5c9409c28d68d4de0f2ebbae60e586838e3c6d7d Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Fri, 1 Apr 2022 09:04:14 -0400 Subject: [PATCH] scripts: add a helper for tagging releases The tag-release.sh script creates an annotated tag containing Klipper's current state. Moonraker's update manager parses this annotation to bind the available Klipper version to this release of Moonraker. Signed-off-by: Eric Callahan --- scripts/tag-release.sh | 71 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 scripts/tag-release.sh diff --git a/scripts/tag-release.sh b/scripts/tag-release.sh new file mode 100755 index 0000000..b654fba --- /dev/null +++ b/scripts/tag-release.sh @@ -0,0 +1,71 @@ +#! /bin/bash +# Helper Script for Tagging Moonraker Releases + +PRINT_ONLY="n" +KLIPPER_PATH="$HOME/klipper" +REMOTE="" +DESCRIBE="describe --always --tags --long" + +# Get Tag and Klipper Path +TAG=$1 +shift +while :; do + case $1 in + -k|--klipper-path) + shift + KLIPPER_PATH=$1 + ;; + -p|--print) + PRINT_ONLY="y" + ;; + *) + break + esac + + shift +done + + +if [ ! -d "$KLIPPER_PATH/.git" ]; then + echo "Invalid Klipper Path: $KLIPPER_PATH" +fi +echo "Klipper found at $KLIPPER_PATH" +GIT_CMD="git -C $KLIPPER_PATH" + +ALL_REMOTES="$( $GIT_CMD remote | tr '\n' ' ' | awk '{gsub(/^ +| +$/,"")} {print $0}' )" +echo "Found Klipper Remotes: $ALL_REMOTES" +for val in $ALL_REMOTES; do + REMOTE_URL="$( $GIT_CMD remote get-url $val | awk '{gsub(/^ +| +$/,"")} {print tolower($0)}' )" + match="$( echo $REMOTE_URL | grep -Ecm1 '(klipper3d|kevinoconnor)/klipper'|| true )" + if [ "$match" -eq 1 ]; then + echo "Found Remote $val" + REMOTE="$val" + break + fi +done + +[ "$REMOTE" = "" ] && echo "Unable to find a valid remote" && exit 1 + +$GIT_CMD fetch $REMOTE + +DESC="$( $GIT_CMD $DESCRIBE $REMOTE/master | awk '{gsub(/^ +| +$/,"")} {print $0}' )" +HASH="$( $GIT_CMD rev-parse $REMOTE/master | awk '{gsub(/^ +| +$/,"")} {print $0}' )" + +if [ "$PRINT_ONLY" = "y" ]; then + echo " +Tag: $TAG +Repo: Klipper +Branch: Master +Version: $DESC +Commit: $HASH +" +else + echo "Adding Tag $TAG" + git tag -a $TAG -m "Moonraker Version $TAG +Klipper Tag Data +repo: klipper +branch: master +version: $DESC +commit: $HASH +" +fi