#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PYTHON_PATH="/Applications/SageMath-10-8.app/Contents/Frameworks/Sage.framework/Versions/10.8/local/bin/python3" SAGE_SITE_PACKAGES="/Applications/SageMath-10-8.app/Contents/Frameworks/Sage.framework/Versions/10.8/local/lib/python3.13/site-packages" VENV_PYTHON="$SCRIPT_DIR/.venv/bin/python3" init_paper() { local raw="${1:-.}" local name name="$(printf '%s' "$raw" | tr '[:upper:]' '[:lower:]' | tr -d '\\' | tr '[:space:]' '_')" local dest="$SCRIPT_DIR/$name" mkdir -p "$dest" cp "$SCRIPT_DIR/ams-latex-template/doc/amsart-template.tex" "$dest/paper.tex" sed -i '' "s|\\\\title{}|\\\\title{$raw}|" "$dest/paper.tex" sed -i '' "s|\\\\author{}|\\\\author{Eric Bauerfeld}|" "$dest/paper.tex" sed -i '' '/^% author two information$/,/^\\thanks{}$/d' "$dest/paper.tex" echo "Initialized paper.tex in $dest" } setup() { "$PYTHON_PATH" -m venv "$SCRIPT_DIR/.venv" "$VENV_PYTHON" -m pip install pylint } lint() { npx pyright lib/ --pythonpath "$PYTHON_PATH" "$VENV_PYTHON" -m pylint lib/ \ --init-hook="import sys; sys.path.insert(0, '${SAGE_SITE_PACKAGES}'); sys.path.insert(0, '${SCRIPT_DIR}')" \ --disable=fixme } case "${1:-}" in init_paper) shift init_paper "$@" ;; setup) setup ;; lint) lint ;; *) echo "Usage: $0 {init_paper|setup|lint} [args]" >&2 exit 1 ;; esac