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 <arksine.code@gmail.com>
This commit is contained in:
parent
72a85e08d4
commit
5c9409c28d
|
@ -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
|
Loading…
Reference in New Issue