summaryrefslogtreecommitdiff
path: root/freezer.sh
blob: 17fa86d3a24332961348315293ab556502ce58d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
# Find all venvs, freeze their packages to requirements.txt

BASE_DIR="$HOME"  # Or wherever your projects are

echo "Scanning for venvs under $BASE_DIR ..."

find "$BASE_DIR" -type f -name "pyvenv.cfg" 2>/dev/null | while read cfg; do
    venv_dir="$(dirname "$cfg")"
    reqfile="$venv_dir/requirements.txt"
    echo "🔒 Freezing $venv_dir → $reqfile"
    "$venv_dir/bin/python" -m pip freeze > "$reqfile"
    if [ $? -eq 0 ]; then
        echo "✅ Done: $reqfile"
    else
        echo "❌ Failed to freeze $venv_dir"
    fi
done

echo "All venvs processed!"