tantri/do.sh
2023-11-14 12:49:34 -06:00

70 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Do - The Simplest Build Tool on Earth.
# Documentation and examples see https://github.com/8gears/do
set -Eeuo pipefail # -e "Automatic exit from bash shell script on error" -u "Treat unset variables and parameters as errors"
checknix() {
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
echo "In an interactive nix env."
else
echo "Using poetry as runner, no nix detected."
fi
}
build() {
echo "I am ${FUNCNAME[0]}ing"
poetry build
}
fmt() {
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
black .
else
poetry run black .
fi
find . -type f -name "*.py" -exec sed -i -e 's/ /\t/g' {} \;
}
test() {
echo "I am ${FUNCNAME[0]}ing"
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
flake8 tantri tests
mypy tantri
pytest
else
poetry run flake8 tantri tests
poetry run mypy tantri
poetry run pytest
fi
}
updatesnap() {
echo "I am ${FUNCNAME[0]}ing"
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
pytest --snapshot-update
else
poetry run pytest --snapshot-update
fi
}
htmlcov() {
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
pytest --cov-report=html
else
poetry run pytest --cov-report=html
fi
}
release() {
./scripts/release.sh
}
all() {
build && fmt && test
}
"$@" # <- execute the task
[ "$#" -gt 0 ] || printf "Usage:\n\t./do.sh %s\n" "($(compgen -A function | grep '^[^_]' | paste -sd '|' -))"