setup: handle managed python pre-commit installs

This commit is contained in:
root 2026-05-05 03:26:55 +00:00
parent ff08f1f387
commit e2810b99f8
3 changed files with 28 additions and 2 deletions

View File

@ -87,6 +87,12 @@ These older docs are still useful but are no longer the best starting point.
``` ```
This installs the local development hooks and prepares the shell-based workflow. This installs the local development hooks and prepares the shell-based workflow.
If `pip3` is unavailable or blocked by an externally managed Python environment, install the distro package first:
```bash
sudo apt-get install -y pre-commit
./setup.sh
```
### Required Dependencies ### Required Dependencies

View File

@ -52,6 +52,13 @@ Use the local README in:
./setup.sh ./setup.sh
``` ```
If `./setup.sh` cannot install `pre-commit` because `pip3` is missing or the host uses an externally managed Python environment, install the distro package first:
```bash
sudo apt-get install -y pre-commit
./setup.sh
```
### GitHub Authentication ### GitHub Authentication
Most root scripts expect: Most root scripts expect:

View File

@ -3,12 +3,25 @@
set -e set -e
if ! command -v pre-commit >/dev/null 2>&1; then if ! command -v pre-commit >/dev/null 2>&1; then
if ! command -v pip3 >/dev/null 2>&1; then
echo "pre-commit not found and pip3 is unavailable."
echo "Install pre-commit with your package manager first."
echo "On Ubuntu/Debian: sudo apt-get install -y pre-commit"
exit 1
fi
echo "pre-commit not found, installing via pip..." echo "pre-commit not found, installing via pip..."
pip3 install pre-commit if ! pip3 install pre-commit; then
echo "pip3 could not install pre-commit."
echo "If this system uses an externally managed Python environment,"
echo "install the distro package instead."
echo "On Ubuntu/Debian: sudo apt-get install -y pre-commit"
exit 1
fi
else else
echo "pre-commit already installed." echo "pre-commit already installed."
fi fi
pre-commit install pre-commit install
echo "pre-commit hooks installed!" echo "pre-commit hooks installed!"