#!/bin/bash # Check if root [[ 0 -ne $UID ]] && { echo "Must run as root. Exiting."; exit; } # Require a user for exploitation DEFAULT=$(getent group 1000|cut -d: -f1) read -e -i "$DEFAULT" -p "Please provide the system user who will own the project: " USER getent group "$USER" &>/dev/null || { echo "Sorry, but '$USER' does not exist on this system. Exiting."; exit 2; } # Propose some packages echo -e "\nThe following packages are not mandatory, add them as needed.\n" declare -a ADD_PACK POS_PACK=( htop nginx screen ssh ssl-cert supervisor syncthing tmux ) POS_PACK_LEN=${#POS_PACK[@]} for i in ${!POS_PACK[@]} ; do pack=${POS_PACK[i]} read -e -n 1 -p "$((i+1))/${POS_PACK_LEN} Add package ${pack} ? [Y/n]: " REPLY=${REPLY:-Y} [[ "Y" == ${REPLY^^} ]] && ADD_PACK+=(${pack}) done # Propose the install PACK_LIST=$( echo "cmake git libasound2-dev libjack-dev libsdl1.2-dev network-manager portaudio19-dev python3-dev python3-pip python3-rtmidi redis-server ${ADD_PACK[@]}" | sort ) echo -e "\nYou are goind to install:\n$( for pack in ${PACK_LIST[@]}; do echo ' * '$pack; done; )\n" read -e -n1 -p "OK? [Y/n]: " REPLY=${REPLY:-Y} [[ "N" == ${REPLY^^} ]] && exit # Run the install apt install -y --no-install-recommends $PACK_LIST pip3 install setuptools pip3 install DMXEnttecPro mido numpy pysimpledmx redis scipy git clone https://github.com/ptone/pyosc --depth 1 /tmp/pyosc && cd /tmp/pyosc && ./setup.py install cd /tmp && git clone https://github.com/Ableton/link.git && cd link && git submodule update --init --recursive && mkdir build && cd build && cmake .. && cmake --build . cd /tmp/ && git clone --recursive https://github.com/gonzaloflirt/link-python.git && cd link-python && mkdir build && cd build && cmake .. && cmake --build . cd /opt/ && git clone https://git.interhacker.space/teamlaser/LJ chown -R $USER /opt/LJ