Skip to content

Commit 8052ee4

Browse files
committed
Drop an auto venv script into ~/Pimoroni, update venv prompt
1 parent c8b2011 commit 8052ee4

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

install.sh

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ DATESTAMP=`date "+%Y-%m-%d-%H-%M-%S"`
55
CONFIG_BACKUP=false
66
APT_HAS_UPDATED=false
77
RESOURCES_TOP_DIR=$HOME/Pimoroni
8-
PY_VENV_DIR=$RESOURCES_TOP_DIR/venv
8+
VENV_BASH_SNIPPET=$RESOURCES_TOP_DIR/auto_venv.sh
9+
VENV_DIR=$RESOURCES_TOP_DIR/venv
910
WD=`pwd`
1011
USAGE="./install.sh (--unstable)"
1112
POSITIONAL_ARGS=()
1213
FORCE=false
1314
UNSTABLE=false
1415
PYTHON="python"
1516

16-
1717
user_check() {
1818
if [ $(id -u) -eq 0 ]; then
1919
printf "Script should not be run as root. Try './install.sh'\n"
@@ -55,21 +55,39 @@ warning() {
5555
echo -e "$(tput setaf 1)$1$(tput sgr0)"
5656
}
5757

58+
venv_bash_snippet() {
59+
if [ ! -f $VENV_BASH_SNIPPET ]; then
60+
cat << EOF > $VENV_BASH_SNIPPET
61+
# Add \`source $RESOURCES_TOP_DIR/auto_venv.sh\` to your ~/.bashrc to activate
62+
# the Pimoroni virtual environment automagically!
63+
PY_ENV_DIR=~/Pimoroni/venv
64+
if [ ! -f \$PY_ENV_DIR/bin/activate ]; then
65+
printf "Creating user Python environment in \$PY_ENV_DIR, please wait...\n"
66+
mkdir -p \$PY_ENV_DIR
67+
python3 -m venv --system-site-packages --prompt Pimoroni \$PY_ENV_DIR
68+
fi
69+
printf " ↓ ↓ ↓ ↓ Hello, we've activated a Python venv for you. To exit, type \"deactivate\".\n"
70+
source \$PY_ENV_DIR/bin/activate
71+
EOF
72+
fi
73+
}
74+
5875
venv_check() {
5976
PYTHON_BIN=`which $PYTHON`
6077
if [[ $VIRTUAL_ENV == "" ]] || [[ $PYTHON_BIN != $VIRTUAL_ENV* ]]; then
6178
printf "This script should be run in a virtual Python environment.\n"
6279
if confirm "Would you like us to create one for you?"; then
63-
if [ ! -f $PY_VENV_DIR/bin/activate ]; then
64-
inform "Creating virtual Python environment in $PY_VENV_DIR, please wait...\n"
65-
mkdir -p $PY_VENV_DIR
66-
/usr/bin/python3 -m venv $PY_VENV_DIR --system-site-packages
80+
if [ ! -f $VENV_DIR/bin/activate ]; then
81+
inform "Creating virtual Python environment in $VENV_DIR, please wait...\n"
82+
mkdir -p $VENV_DIR
83+
/usr/bin/python3 -m venv $VENV_DIR --system-site-packages --prompt Pimoroni
84+
venv_bash_snippet
6785
else
68-
inform "Found existing virtual Python environment in $PY_VENV_DIR\n"
86+
inform "Found existing virtual Python environment in $VENV_DIR\n"
6987
fi
70-
inform "Activating virtual Python environment in $PY_VENV_DIR..."
71-
inform "source $PY_VENV_DIR/bin/activate\n"
72-
source $PY_VENV_DIR/bin/activate
88+
inform "Activating virtual Python environment in $VENV_DIR..."
89+
inform "source $VENV_DIR/bin/activate\n"
90+
source $VENV_DIR/bin/activate
7391

7492
else
7593
exit 1

0 commit comments

Comments
 (0)