mirror of
https://github.com/pimoroni/grow-python
synced 2025-10-24 15:19:24 +00:00
89 lines
2.1 KiB
Bash
Executable File
89 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script handles some basic QA checks on the source
|
|
|
|
NOPOST=$1
|
|
LIBRARY_NAME=`hatch project metadata name`
|
|
LIBRARY_VERSION=`hatch version | awk -F "." '{print $1"."$2"."$3}'`
|
|
POST_VERSION=`hatch version | awk -F "." '{print substr($4,0,length($4))}'`
|
|
TERM=${TERM:="xterm-256color"}
|
|
|
|
success() {
|
|
echo -e "$(tput setaf 2)$1$(tput sgr0)"
|
|
}
|
|
|
|
inform() {
|
|
echo -e "$(tput setaf 6)$1$(tput sgr0)"
|
|
}
|
|
|
|
warning() {
|
|
echo -e "$(tput setaf 1)$1$(tput sgr0)"
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
K="$1"
|
|
case $K in
|
|
-p|--nopost)
|
|
NOPOST=true
|
|
shift
|
|
;;
|
|
*)
|
|
if [[ $1 == -* ]]; then
|
|
printf "Unrecognised option: $1\n";
|
|
exit 1
|
|
fi
|
|
POSITIONAL_ARGS+=("$1")
|
|
shift
|
|
esac
|
|
done
|
|
|
|
inform "Checking $LIBRARY_NAME $LIBRARY_VERSION\n"
|
|
|
|
inform "Checking for trailing whitespace..."
|
|
grep -IUrn --color "[[:blank:]]$" --exclude-dir=dist --exclude-dir=.tox --exclude-dir=.git --exclude=PKG-INFO
|
|
if [[ $? -eq 0 ]]; then
|
|
warning "Trailing whitespace found!"
|
|
exit 1
|
|
else
|
|
success "No trailing whitespace found."
|
|
fi
|
|
printf "\n"
|
|
|
|
inform "Checking for DOS line-endings..."
|
|
grep -lIUrn --color $'\r' --exclude-dir=dist --exclude-dir=.tox --exclude-dir=.git --exclude=Makefile
|
|
if [[ $? -eq 0 ]]; then
|
|
warning "DOS line-endings found!"
|
|
exit 1
|
|
else
|
|
success "No DOS line-endings found."
|
|
fi
|
|
printf "\n"
|
|
|
|
inform "Checking CHANGELOG.md..."
|
|
cat CHANGELOG.md | grep ^${LIBRARY_VERSION} > /dev/null 2>&1
|
|
if [[ $? -eq 1 ]]; then
|
|
warning "Changes missing for version ${LIBRARY_VERSION}! Please update CHANGELOG.md."
|
|
exit 1
|
|
else
|
|
success "Changes found for version ${LIBRARY_VERSION}."
|
|
fi
|
|
printf "\n"
|
|
|
|
inform "Checking for git tag ${LIBRARY_VERSION}..."
|
|
git tag -l | grep -E "${LIBRARY_VERSION}$"
|
|
if [[ $? -eq 1 ]]; then
|
|
warning "Missing git tag for version ${LIBRARY_VERSION}"
|
|
fi
|
|
printf "\n"
|
|
|
|
if [[ $NOPOST ]]; then
|
|
inform "Checking for .postN on library version..."
|
|
if [[ "$POST_VERSION" != "" ]]; then
|
|
warning "Found .$POST_VERSION on library version."
|
|
inform "Please only use these for testpypi releases."
|
|
exit 1
|
|
else
|
|
success "OK"
|
|
fi
|
|
fi
|