31 lines
1.0 KiB
Bash
31 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
COREDESKTOP="$HOME/.local/share/coredesktop"
|
|
|
|
source "$COREDESKTOP/utils.sh"
|
|
source "$COREDESKTOP/packages.conf"
|
|
|
|
STATUS=0
|
|
|
|
echo "Checking for new pipx applications..."
|
|
install_pipx_apps "${PIPX[@]}" || STATUS=1
|
|
|
|
# pipx venvs are tied to the Python they were built with, so a Python upgrade
|
|
# breaks them in a way `pipx upgrade-all` can't repair. Rebuild them when the
|
|
# Python version changes, or when an upgrade fails.
|
|
STAMP="$HOME/.local/state/coredesktop/pipx-python-version"
|
|
CURRENT_PYTHON="$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')"
|
|
|
|
if [ "$(cat "$STAMP" 2>/dev/null)" != "$CURRENT_PYTHON" ]; then
|
|
echo "Python changed to $CURRENT_PYTHON, reinstalling pipx applications..."
|
|
pipx reinstall-all
|
|
else
|
|
echo "Updating pipx applications..."
|
|
if ! pipx upgrade-all; then
|
|
echo "pipx upgrade-all failed, reinstalling pipx applications..."
|
|
pipx reinstall-all
|
|
fi
|
|
fi && mkdir -p "$(dirname "$STAMP")" && echo "$CURRENT_PYTHON" > "$STAMP" || STATUS=1
|
|
|
|
exit $STATUS
|