diff options
| author | Craig Jennings <c@cjennings.net> | 2025-11-04 14:35:50 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-11-04 14:35:50 -0600 |
| commit | 45cab5c38dc089935416a89d36b461d9127094ac (patch) | |
| tree | ccfb33579de009c8c8694f2a79d10e487d74de8f /scripts/uninstall-whisper.sh | |
| parent | efbcd0b7de7993b9fde29297daad1154711a3e81 (diff) | |
feat: Add complete async audio transcription workflow
Implemented full transcription system with local Whisper and OpenAI API
support. Includes comprehensive test suite (60 tests) and reorganized
keybindings for better discoverability.
Features:
- Async transcription (non-blocking workflow)
- Desktop notifications (started/complete/error)
- Output: audio.txt (transcript) + audio.log (process logs)
- Modeline integration showing active transcription count
- Dired integration (press T on audio files)
- Process management and tracking
Scripts:
- install-whisper.sh: Install Whisper via AUR or pip
- uninstall-whisper.sh: Clean removal with cache cleanup
- local-whisper: Offline transcription using installed Whisper
- oai-transcribe: Cloud transcription via OpenAI API
Tests (60 passing):
- Audio file detection (16 tests)
- Path generation logic (11 tests)
- Log cleanup behavior (5 tests)
- Duration formatting (9 tests)
- Active counter & modeline (11 tests)
- Integration workflows (8 tests)
Keybindings:
- Reorganized gcal to C-; g submenu (s/t/r/c)
- Added C-; t transcription submenu (t/b/k)
- Dired: T to transcribe file at point
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'scripts/uninstall-whisper.sh')
| -rwxr-xr-x | scripts/uninstall-whisper.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/scripts/uninstall-whisper.sh b/scripts/uninstall-whisper.sh new file mode 100755 index 00000000..e46c6ebc --- /dev/null +++ b/scripts/uninstall-whisper.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# Uninstall OpenAI Whisper + +set -euo pipefail + +echo "=== Whisper Uninstallation ===" +echo + +REMOVED=false + +# Check if installed via AUR +if command -v yay &> /dev/null; then + if yay -Qi python-openai-whisper &> /dev/null 2>&1; then + echo "Detected AUR installation (python-openai-whisper)" + read -p "Remove via yay? [Y/n] " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then + yay -R python-openai-whisper + echo "✓ Removed via AUR" + REMOVED=true + fi + fi +fi + +# Check if installed via pip +if pip list 2>/dev/null | grep -q openai-whisper; then + echo "Detected pip installation (openai-whisper)" + read -p "Remove via pip? [Y/n] " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then + pip uninstall -y openai-whisper + echo "✓ Removed via pip" + REMOVED=true + fi +fi + +if [[ "$REMOVED" == false ]]; then + echo "No whisper installation found (checked AUR and pip)" +fi + +# Ask about ffmpeg +echo +read -p "Remove ffmpeg? (may be used by other apps) [y/N] " -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + sudo pacman -R ffmpeg + echo "✓ Removed ffmpeg" +fi + +# Ask about model cache +CACHE_DIR="$HOME/.cache/whisper" +if [[ -d "$CACHE_DIR" ]]; then + echo + echo "Whisper models are cached in: $CACHE_DIR" + du -sh "$CACHE_DIR" 2>/dev/null || echo "Size: unknown" + read -p "Delete cached models? [y/N] " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + rm -rf "$CACHE_DIR" + echo "✓ Deleted model cache" + fi +fi + +echo +echo "=== Uninstallation Complete ===" |
