#!/usr/bin/env bash ### ### typecheck a given target ### ### > typecheck.sh ### ### Uses repl.sh to provision the environment for target, then runs the ### appropriate typechecker for the given module. ### help() { sed -rn 's/^### ?//;T;p' "$0" } if [[ $# == 0 ]] || [[ "$1" == "-h" ]]; then help exit 1 fi target="$1" # Determine file extension ext="${target##*.}" case "$ext" in py) # Python: use mypy via repl.sh environment repl.sh --cmd "python -m mypy $target" "$target" ;; hs) # Haskell: use ghc -fno-code # This would need the right environment from repl.sh echo "Haskell typechecking not yet implemented in typecheck.sh" echo "Use 'bild $target' to build and typecheck" exit 1 ;; *) echo "Unknown file extension: $ext" echo "Typechecking not supported for this file type" exit 1 ;; esac