50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/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
|