Setup script improvements to MacOS / Ubuntu (#2012)

* Setup script improvements to MacOS / Ubuntu

scons isn't actually required from brew install

pyenv init on all envs

added installation to .zshrc on macos with better dir logic

Using git to detect project root for ubuntu bashrc install

Check shell and determine correct RC file

Update tools/mac_setup.sh

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

Sourcing RC file only if it's found

Removed unnecessary source of rc file

Submodules should never have been bumped...

Output the $RC_FILE when successfully installed

pyenv init every time, and skip RC install on CI

Confused bash conditionals, opposite of what I meant

* Was missing libusb on a fresh MacOS 10.15.6 install

Co-authored-by: Michael Honan <michaelhonan@Michaels-MacBook-Pro.local>
albatross
Michael Honan 2020-08-15 11:03:55 +10:00 committed by GitHub
parent 5641aeee7a
commit 4a9228fcc7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 8 deletions

View File

@ -1,7 +1,13 @@
#!/bin/bash -e
# install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Install brew if required.
if [[ $(command -v brew) == "" ]]; then
echo "Installing Hombrew"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
else
echo "Updating Homebrew"
brew update
fi
brew install capnp \
czmq \
@ -10,17 +16,39 @@ brew install capnp \
ffmpeg \
glfw \
libarchive \
libusb \
libtool \
llvm \
pyenv \
zeromq
# install python
# Detect shell and pick correct RC file.
if [[ $SHELL == "/bin/zsh" ]]; then
RC_FILE="$HOME/.zshrc"
elif [[ $SHELL == "/bin/bash" ]]; then
RC_FILE="$HOME/.bash_profile"
else
echo "-------------------------------------------------------------"
echo "Unsupported shell: \"$SHELL\", cannot install to RC file."
echo "Please run: echo \"source $OP_DIR/tools/openpilot_env.sh\" >> %YOUR SHELL's RC file%"
echo "-------------------------------------------------------------"
fi
# Install to RC file (only non-CI).
if [ -z "$OPENPILOT_ENV" ] && [ -n "$RC_FILE" ] && [ -z "$CI" ]; then
OP_DIR=$(git rev-parse --show-toplevel)
echo "source $OP_DIR/tools/openpilot_env.sh" >> $RC_FILE
source $RC_FILE
echo "Added openpilot_env to RC file: $RC_FILE"
else
echo "Skipped RC file installation"
fi
# Install python.
pyenv install -s 3.8.2
pyenv global 3.8.2
pyenv rehash
eval "$(pyenv init -)"
eval "$(pyenv init -)" # CI doesn't use .bash_profile, and will use python2.7 if this line isn't here.
pip install pipenv==2018.11.26
pipenv install --system --deploy

3
tools/openpilot_env.sh 100644 → 100755
View File

@ -4,14 +4,13 @@ if [ -z "$OPENPILOT_ENV" ]; then
unamestr=`uname`
if [[ "$unamestr" == 'Linux' ]]; then
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
elif [[ "$unamestr" == 'Darwin' ]]; then
# msgq doesn't work on mac
export ZMQ=1
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
fi
eval "$(pyenv init -)"
export OPENPILOT_ENV=1
fi

View File

@ -61,7 +61,8 @@ fi
# install bashrc
source ~/.bashrc
if [ -z "$OPENPILOT_ENV" ]; then
echo "source $HOME/openpilot/tools/openpilot_env.sh" >> ~/.bashrc
OP_DIR=$(git rev-parse --show-toplevel)
echo "source $OP_DIR/tools/openpilot_env.sh" >> ~/.bashrc
source ~/.bashrc
echo "added openpilot_env to bashrc"
fi