#!/usr/bin/env bash # Modules can be added here in the following format: # Tail_of_GitHub_URL Short_Description Default_Checkbox_State # The description must use underscores instead of spaces ADDONS=( \ "TheFlav/Freeplay-Support General_Freeplay_Tools on" \ "TheFlav/rpi-fbcp Original_display_driver_(Zero) on" \ "mootikins/FreeplayILI9341 Precompiled_advanced_display_driver_(Non-Zero) on" \ "TheFlav/mk_arcade_joystick_rpi GPIO_joystick_driver_with_related_tools on" \ "TheFlav/setPCA9633 PWM_Brightness_controller_(requires_add-on) on" \ "TheFlav/FreeplayAudioTools Audio_tools_for_HDMI_and_mono/stereo on" \ "Mootikins/Freeplay-Wireless-Menu Menu_for_toggling_Bluetooth/WiFi_on_Pi_Zero_ONLY off" \ ) cmd=(dialog --title "Install Addons" \ --separate-output \ --ok-label "Install" \ --checklist "Select options:" 0 0 0) CHOICES=$("${cmd[@]}" ${ADDONS[@]} 2>&1 >/dev/tty) clear mkdir /home/pi/Freeplay printf "Downloading selected Addons. If there are any prompts, press Enter." pushd /home/pi/Freeplay &> /dev/null DL_ERR=() for ADDON in $CHOICES do printf "\nDownloading module "$ADDON"...\u001b[0m\n" if git clone https://github.com/"$ADDON" ; then printf "\u001b[32mModule "$ADDON" downloaded successfully\u001b[0m\n" else printf "\e[0;31;40mModule "$ADDON" was NOT downloaded successfully\u001b[0m\n" DL_ERR+=( "$ADDON" ) fi done if [ ${#DL_ERR[@]} -eq 0 ]; then printf "\n\u001b[32mAll selected modules downloaded successfully\u001b[0m\n" else printf "\n\e[0;31;40mThe following modules could not be downloaded:\u001b[0m\n" for MODULE in ${DL_ERR[@]} do printf "\t\e[0;31;40m"$MODULE"\u001b[0m\n" done fi sleep 1 INST_ERR=() printf "\n\u001b[36;1mInstalling downloaded modules\u001b[0m\n" for DIR in $(ls -d */) do pushd $DIR &> /dev/null printf "\t\u001b[36;1m$DIR...\u001b[0m\n" if sudo ./install.sh; then printf "\u001b[36;1m$DIR Installed Successfully\u001b[0m\n" else printf "\e[0;31;40m$DIR NOT Installed Successfully\u001b[0m\n" INST_ERR+=( "$DIR" ) fi popd &> /dev/null done popd &> /dev/null if [ ${#INST_ERR[@]} -eq 0 ]; then printf "\n\u001b[32mAll downloaded modules installed successfully\u001b[0m\n" else printf "\n\e[0;31;40mThe following modules could not be installed:\u001b[0m\n" for MODULE in ${INST_ERR[@]} do printf "\t\e[0;31;40m"$MODULE"\u001b[0m\n" done fi dialog --title "RxBrad Freeplay Theme" \ --yesno "Would you like to download and install RxBrad's Freeplay theme for EmulationStation?" 0 0 RESP=$? case $RESP in 0) sudo git clone --recursive --depth 1 "https://github.com/rxbrad/es-theme-freeplay.git" "/etc/emulationstation/themes/freeplay"; \ sudo sed -i 's///g' /opt/retropie/configs/all/emulationstation/es_settings.cfg; \ sudo sed -i 's///' /opt/retropie/configs/all/emulationstation/es_settings.cfg;; 1) ;; 255) ;; esac mkdir -p "/home/pi/RetroPie/retropiemenu/Freeplay Options" sudo cp /home/pi/Freeplay/Freeplay-Support/OptimalLCDSettings.sh "/home/pi/RetroPie/retropiemenu/Freeplay Options/OptimalLCDSettings.sh" if grep -q "Freeplay Optimal LCD Settings" /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml ; then echo "Optimal LCD Settings Changer already in menu" else sudo sed -i 's||\t\n\t\t./Freeplay Options/OptimalLCDSettings.sh\n\t\tFreeplay Optimal LCD Settings\n\t\tSwitch between optimal LCD settings and HDMI compatibility\n\t\t\n\t\t0\n\t\t20180514T205700\n\t\n|' /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml fi exit 0