89 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			89 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#!/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 "$@"
							 |