chore: create_release check for unused lint

This commit is contained in:
Jack Wills
2024-01-13 13:31:53 +00:00
parent c9049dacd9
commit d0b2721192
+36 -26
View File
@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# rust create_release # rust create_release
# v0.3.1 # v0.4.1
STAR_LINE='****************************************' STAR_LINE='****************************************'
CWD=$(pwd) CWD=$(pwd)
@@ -12,10 +12,9 @@ YELLOW='\033[0;33m'
PURPLE='\033[0;35m' PURPLE='\033[0;35m'
RESET='\033[0m' RESET='\033[0m'
# $1 string - error message # $1 string - error message
error_close() { error_close() {
echo -e "\n${RED}ERROR - EXITED: ${YELLOW}$1${RESET}\n"; echo -e "\n${RED}ERROR - EXITED: ${YELLOW}$1${RESET}\n"
exit 1 exit 1
} }
@@ -56,8 +55,7 @@ get_git_remote_url() {
# Check that git status is clean # Check that git status is clean
check_git_clean() { check_git_clean() {
GIT_CLEAN=$(git status --porcelain) GIT_CLEAN=$(git status --porcelain)
if [[ -n $GIT_CLEAN ]] if [[ -n $GIT_CLEAN ]]; then
then
error_close "git dirty" error_close "git dirty"
fi fi
} }
@@ -66,8 +64,7 @@ check_git_clean() {
check_git() { check_git() {
CURRENT_GIT_BRANCH=$(git branch --show-current) CURRENT_GIT_BRANCH=$(git branch --show-current)
check_git_clean check_git_clean
if [[ ! "$CURRENT_GIT_BRANCH" =~ ^dev$ ]] if [[ ! "$CURRENT_GIT_BRANCH" =~ ^dev$ ]]; then
then
error_close "not on dev branch" error_close "not on dev branch"
fi fi
} }
@@ -79,8 +76,7 @@ ask_changelog_update() {
printf "%s" "$RELEASE_BODY_TEXT" printf "%s" "$RELEASE_BODY_TEXT"
printf "\n%s\n" "${STAR_LINE}" printf "\n%s\n" "${STAR_LINE}"
ask_yn "accept release body" ask_yn "accept release body"
if [[ "$(user_input)" =~ ^y$ ]] if [[ "$(user_input)" =~ ^y$ ]]; then
then
update_release_body_and_changelog "$RELEASE_BODY_TEXT" update_release_body_and_changelog "$RELEASE_BODY_TEXT"
else else
exit exit
@@ -122,8 +118,7 @@ check_tag () {
LATEST_TAG=$(git describe --tags "$(git rev-list --tags --max-count=1)") LATEST_TAG=$(git describe --tags "$(git rev-list --tags --max-count=1)")
echo -e "\nCurrent tag: ${PURPLE}${LATEST_TAG}${RESET}\n" echo -e "\nCurrent tag: ${PURPLE}${LATEST_TAG}${RESET}\n"
echo -e "${YELLOW}Choose new tag version:${RESET}\n" echo -e "${YELLOW}Choose new tag version:${RESET}\n"
if [[ $LATEST_TAG =~ ^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]] if [[ $LATEST_TAG =~ ^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]; then
then
IFS="." read -r MAJOR MINOR PATCH <<<"${LATEST_TAG:1}" IFS="." read -r MAJOR MINOR PATCH <<<"${LATEST_TAG:1}"
else else
MAJOR="0" MAJOR="0"
@@ -134,23 +129,26 @@ check_tag () {
OP_MINOR="minor___v$(update_minor)" OP_MINOR="minor___v$(update_minor)"
OP_PATCH="patch___v$(update_patch)" OP_PATCH="patch___v$(update_patch)"
OPTIONS=("$OP_MAJOR" "$OP_MINOR" "$OP_PATCH") OPTIONS=("$OP_MAJOR" "$OP_MINOR" "$OP_PATCH")
select choice in "${OPTIONS[@]}" select choice in "${OPTIONS[@]}"; do
do
case $choice in case $choice in
"$OP_MAJOR") "$OP_MAJOR")
MAJOR=$((MAJOR + 1)) MAJOR=$((MAJOR + 1))
MINOR=0 MINOR=0
PATCH=0 PATCH=0
break;; break
;;
"$OP_MINOR") "$OP_MINOR")
MINOR=$((MINOR + 1)) MINOR=$((MINOR + 1))
PATCH=0 PATCH=0
break;; break
;;
"$OP_PATCH") "$OP_PATCH")
PATCH=$((PATCH + 1)) PATCH=$((PATCH + 1))
break;; break
;;
*) *)
error_close "invalid option $REPLY" error_close "invalid option $REPLY"
;;
esac esac
done done
} }
@@ -158,8 +156,7 @@ check_tag () {
# ask continue, or quit # ask continue, or quit
ask_continue() { ask_continue() {
ask_yn "continue" ask_yn "continue"
if [[ ! "$(user_input)" =~ ^y$ ]] if [[ ! "$(user_input)" =~ ^y$ ]]; then
then
exit exit
fi fi
} }
@@ -199,7 +196,6 @@ cargo_build () {
cargo_clean cargo_clean
} }
# $1 text to colourise # $1 text to colourise
release_continue() { release_continue() {
echo -e "\n${PURPLE}$1${RESET}" echo -e "\n${PURPLE}$1${RESET}"
@@ -218,8 +214,20 @@ check_typos () {
ask_continue ask_continue
} }
# Make sure the unused lint isn't used
check_allow_unsued() {
matches_any=$(find . -type d \( -name .git -o -name target \) -prune -o -type f -exec grep -lE '^#!\[allow\(unused\)\]$' {} +)
matches_cargo=$(grep "^unused = \"allow\"" ./Cargo.toml)
if [ -n "$matches_any" ]; then
error_close "\"#[allow(unused)]\" in ${matches_any}"
elif [ -n "$matches_cargo" ]; then
error_close "\"unsed = \"allow\"\" in Cargo.toml"
fi
}
# Full flow to create a new release # Full flow to create a new release
release_flow() { release_flow() {
check_allow_unsued
check_typos check_typos
check_git check_git
@@ -283,7 +291,6 @@ release_flow() {
git branch -d "$RELEASE_BRANCH" git branch -d "$RELEASE_BRANCH"
} }
main() { main() {
cmd=(dialog --backtitle "Choose option" --radiolist "choose" 14 80 16) cmd=(dialog --backtitle "Choose option" --radiolist "choose" 14 80 16)
options=( options=(
@@ -297,22 +304,25 @@ main() {
if [ $exitStatus -ne 0 ]; then if [ $exitStatus -ne 0 ]; then
exit exit
fi fi
for choice in $choices for choice in $choices; do
do
case $choice in case $choice in
0) 0)
exit;; exit
;;
1) 1)
cargo_test cargo_test
main main
break;; break
;;
2) 2)
release_flow release_flow
break;; break
;;
3) 3)
cargo_build cargo_build
main main
break;; break
;;
esac esac
done done
} }