aboutsummaryrefslogtreecommitdiff
path: root/.ai/scripts/drill-deck-sync
diff options
context:
space:
mode:
Diffstat (limited to '.ai/scripts/drill-deck-sync')
-rwxr-xr-x.ai/scripts/drill-deck-sync98
1 files changed, 0 insertions, 98 deletions
diff --git a/.ai/scripts/drill-deck-sync b/.ai/scripts/drill-deck-sync
deleted file mode 100755
index 8e51cdd..0000000
--- a/.ai/scripts/drill-deck-sync
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env bash
-# drill-deck-sync: stats check + regenerate Anki apkg + place at ~/sync/phone/anki/
-#
-# Wraps drill-deck-stats.py + drill-to-anki.py (and optionally
-# drill-deck-diff-ids.py) for the canonical "rewrote the deck, now ship
-# it" step in the drill-deck-review workflow.
-#
-# Usage:
-# drill-deck-sync <source.org>
-# drill-deck-sync <source.org> --diff-against <previous-version.org>
-#
-# Exits non-zero when the stats check warns, when --diff-against shows
-# any disappeared / appeared IDs, or when drill-to-anki.py fails. The
-# Anki apkg is not written when any gate fails.
-
-set -euo pipefail
-
-usage() {
- cat >&2 <<'EOF'
-usage: drill-deck-sync <source.org> [--diff-against <previous-version.org>]
-EOF
- exit 2
-}
-
-if [[ $# -lt 1 ]]; then
- usage
-fi
-
-SOURCE="$1"
-shift
-
-DIFF_AGAINST=""
-while [[ $# -gt 0 ]]; do
- case "$1" in
- --diff-against)
- [[ $# -ge 2 ]] || usage
- DIFF_AGAINST="$2"
- shift 2
- ;;
- -h|--help)
- usage
- ;;
- *)
- echo "unknown arg: $1" >&2
- usage
- ;;
- esac
-done
-
-if [[ ! -f "$SOURCE" ]]; then
- echo "error: $SOURCE not found" >&2
- exit 2
-fi
-
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-STATS="$SCRIPT_DIR/drill-deck-stats.py"
-DIFF_IDS="$SCRIPT_DIR/drill-deck-diff-ids.py"
-TO_ANKI="$SCRIPT_DIR/drill-to-anki.py"
-
-for helper in "$STATS" "$DIFF_IDS" "$TO_ANKI"; do
- if [[ ! -f "$helper" ]]; then
- echo "error: helper $helper not found" >&2
- exit 2
- fi
-done
-
-echo "=== drill-deck-sync: $SOURCE ==="
-echo
-echo "--- stats ---"
-if ! python3 "$STATS" "$SOURCE"; then
- echo
- echo "stats check failed — fix warnings before sync, or call drill-to-anki.py directly to override" >&2
- exit 1
-fi
-echo
-
-if [[ -n "$DIFF_AGAINST" ]]; then
- if [[ ! -f "$DIFF_AGAINST" ]]; then
- echo "error: $DIFF_AGAINST not found" >&2
- exit 2
- fi
- echo "--- ID preservation ---"
- if ! python3 "$DIFF_IDS" "$DIFF_AGAINST" "$SOURCE"; then
- echo
- echo "ID preservation check failed — SRS state may have been lost" >&2
- exit 1
- fi
- echo
-fi
-
-BASENAME="$(basename "$SOURCE" .org)"
-OUTPUT="$HOME/sync/phone/anki/${BASENAME}.apkg"
-
-echo "--- regenerate apkg ---"
-mkdir -p "$(dirname "$OUTPUT")"
-"$TO_ANKI" "$SOURCE" --output "$OUTPUT"
-echo
-echo "deck synced to $OUTPUT"