/
githubmirror
/
cpython
Обзор
Документация
Войти
/
githubmirror
/
cpython
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Mac/BuildScript/scripts/postflight.patch-profile
104 строки
2 KB
Ned Deily
gh-137450: macOS installer shell path management improvements (#137451)
06 авг 2025, 14:21
Не верифицирован
06 авг 2025, 14:21
781eb1a
Код
Авторство
О чём код?
#!/bin/sh PYVER=@PYVER@ PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/@PYVER@" # Run from the installer, do some trickery to fetch the information # we need. theShell="`finger $USER | grep Shell: | head -1 | awk '{ print $NF }'`" # Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH. BSH="`basename "${theShell}"`" case "${BSH}" in bash|ksh|sh|*csh|zsh|fish) true ;; *) exit 0 ;; esac case "${BSH}" in *csh) if [ -f "${HOME}/.tcshrc" ]; then RC="${HOME}/.tcshrc" else RC="${HOME}/.cshrc" fi # Drop privileges while writing files. su -m ${USER} <<EOFC # Create backup copy before patching if [ -f "${RC}" ]; then cp -fp "${RC}" "${RC}.pysave" fi echo "" >> "${RC}" echo "# Setting PATH for Python ${PYVER}" >> "${RC}" echo "# The original version is saved in .cshrc.pysave" >> "${RC}" echo "set path=(${PYTHON_ROOT}/bin "'\$path'")" >> "${RC}" EOFC if [ `id -ur` = 0 ]; then chown -h "${USER}" "${RC}" fi exit 0 ;; bash) if [ -e "${HOME}/.bash_profile" ]; then PR="${HOME}/.bash_profile" elif [ -e "${HOME}/.bash_login" ]; then PR="${HOME}/.bash_login" elif [ -e "${HOME}/.profile" ]; then PR="${HOME}/.profile" else PR="${HOME}/.bash_profile" fi ;; fish) CONFIG_DIR="${HOME}/.config/fish/conf.d/" RC="${CONFIG_DIR}/python-${PYVER}.fish" # Drop privileges while writing files. su -m ${USER} <<EOFF mkdir -p "$CONFIG_DIR" if [ -f "${RC}" ]; then cp -fp "${RC}" "${RC}.pysave" fi echo "# Setting PATH for Python ${PYVER}" > "${RC}" if [ -f "${RC}.pysave" ]; then echo "# The original version is saved in ${RC}.pysave" >> "${RC}" fi echo "fish_add_path -g \"${PYTHON_ROOT}/bin\"" >> "${RC}" EOFF if [ `id -ur` = 0 ]; then chown -h "${USER}" "${RC}" fi exit 0 ;; zsh) PR="${HOME}/.zprofile" ;; *sh) PR="${HOME}/.profile" ;; esac # Drop privileges while writing files. su -m ${USER} <<EOFS # Create backup copy before patching if [ -f "${PR}" ]; then cp -fp "${PR}" "${PR}.pysave" fi echo "" >> "${PR}" echo "# Setting PATH for Python ${PYVER}" >> "${PR}" echo "# The original version is saved in `basename ${PR}`.pysave" >> "${PR}" echo 'PATH="'"${PYTHON_ROOT}/bin"':\${PATH}"' >> "${PR}" echo 'export PATH' >> "${PR}" EOFS if [ `id -ur` = 0 ]; then chown -h "${USER}" "${PR}" fi exit 0