88 lines
1.7 KiB
Bash
88 lines
1.7 KiB
Bash
#!/usr/bin/env zsh
|
|
#
|
|
# Set up for CPython development.
|
|
#
|
|
# Eryn Wells <eryn@erynwells.me>
|
|
|
|
|
|
function _usage-setup-cpython
|
|
{
|
|
cat <<EOF
|
|
Usage: $1 [-h] [-r root]
|
|
|
|
Setup for CPython development.
|
|
|
|
Arguments:
|
|
-h Show this help.
|
|
-r root Use the given directory as the root of the CPython source tree.
|
|
EOF
|
|
}
|
|
|
|
|
|
function setup-cpython
|
|
{
|
|
root="$HOME/Code/cpython"
|
|
coverage="$HOME/Code/coveragepy"
|
|
|
|
while getopts 'hr:' opt; do
|
|
case $opt in
|
|
(h)
|
|
_usage-setup-cpython "$0"
|
|
return 0
|
|
;;
|
|
(r)
|
|
root="$OPTARG"
|
|
;;
|
|
(*)
|
|
echo "Invalid argument: $OPTARG" 1>&2
|
|
return -1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ ! -d "$root" ]]; then
|
|
print_error "Invalid source root: $root"
|
|
return 1
|
|
fi
|
|
|
|
export coverage
|
|
export lib="$root/Lib"
|
|
export root
|
|
|
|
function cov
|
|
{
|
|
local cmd
|
|
case "$1" in
|
|
(html)
|
|
local module="$root/Lib/$2"
|
|
if [[ ! -d "$module" ]]; then
|
|
if [[ -f "$module.py" ]]; then
|
|
module="$module.py"
|
|
fi
|
|
fi
|
|
cmd="html -i --include=$module"
|
|
;;
|
|
(report)
|
|
cmd="report"
|
|
;;
|
|
(run)
|
|
cmd="run --pylib --source=$2 Lib/test/regrtest.py test_$2"
|
|
;;
|
|
esac
|
|
(cd "$root"; ./python.exe "$coverage" "$cmd")
|
|
}
|
|
|
|
unsetup_functions=(unsetup-cpython)
|
|
}
|
|
|
|
|
|
function unsetup-cpython
|
|
{
|
|
unset coverage
|
|
unset lib
|
|
unset root
|
|
|
|
unfunction cov
|
|
}
|
|
|
|
setup-cpython "$@"
|