#!/bin/bash # exit on any errors set -e function inform() { echo -e "\n[INFO] $@\n"; } function warn() { echo -e "\n[WARN] $@\n"; } function error() { echo -e "\n[ERROR] $@\n"; } # exit unless user responds with yes function confirmContinue() { while true; do read -p "$@ [y/n]" yn case $yn in [Yy]* ) break;; [Nn]* ) exit 0;; * ) error "Please answer yes or no.";; esac done } if ! which conda &> /dev/null; then error "Conda not found.\n\nVisit https://docs.anaconda.com/anaconda/install/index.html for more info." exit 1 fi # Enable "conda activate" and "conda deactivate" eval "$(conda shell.bash hook)" envName=dactyl-keyboard if [ "$1" = "--uninstall" ]; then confirmContinue "Would you like to remove the conda environment $envName?" conda deactivate conda env remove -n $envName exit fi if conda info --envs | grep $envName &> /dev/null; then warn "Conda env \"$envName\" already exists." confirmContinue "Do you want to overwrite it?" fi inform "Creating conda environment: $envName..." conda create --name=$envName python=3.7 -y conda activate $envName inform "Installing PythonOCC..." conda install -c conda-forge pythonocc-core=7.4.1 -y inform "Installing CadQuery..." conda install -c conda-forge -c cadquery cadquery=2 -y inform "Installing dataclasses_json..." pip install dataclasses-json inform "Installing numpy..." pip install numpy inform "Installing scipy..." pip install scipy inform "Installing solidpython..." pip install solidpython inform "Updating conda dependencies..." conda update --all -y inform "Success!\n\n\tRun \"conda activate $envName\" to activate the environment."