#!/bin/bash # https://github.com/dennisreimann/kindle-display USERNAME=kindledisplay SERVER_PORT=3030 APP_DATA_DIR=/mnt/hdd/app-data/kindle-display HOME_DIR=/home/$USERNAME CONFIG_FILE=$APP_DATA_DIR/.env RASPIBLITZ_FILE=/mnt/hdd/raspiblitz.conf APP_ROOT_DIR=$HOME_DIR/kindle-display APP_SERVER_DIR=$APP_ROOT_DIR/server CRON_FILE=$APP_SERVER_DIR/cron.sh APP_VERSION=0.4.0 # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "small config script to switch kindle-display on or off" echo "bonus.kindle-display.sh [on|off]" exit 1 fi source /mnt/hdd/raspiblitz.conf # switch on if [ "$1" = "1" ] || [ "$1" = "on" ]; then echo "*** INSTALL KINDLE-DISPLAY ***" isInstalled=$(sudo ls $HOME_DIR 2>/dev/null | grep -c 'kindle-display') if [ ${isInstalled} -eq 0 ]; then # install dependencies sudo apt install -y firefox-esr pngcrush jo jq # install nodeJS /home/admin/config.scripts/bonus.nodejs.sh on # add user sudo adduser --disabled-password --gecos "" $USERNAME # install kindle-display cd $HOME_DIR sudo -u $USERNAME wget https://github.com/dennisreimann/kindle-display/archive/v$APP_VERSION.tar.gz sudo -u $USERNAME tar -xzf v$APP_VERSION.tar.gz kindle-display-$APP_VERSION/server sudo -u $USERNAME mv kindle-display{-$APP_VERSION,} sudo -u $USERNAME rm v$APP_VERSION.tar.gz cd kindle-display/server sudo -u $USERNAME npm install # setup kindle-display config RPC_USER=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcuser | cut -c 9-) RPC_PASS=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-) sudo mkdir -p $APP_DATA_DIR sudo chown $USERNAME:$USERNAME $APP_DATA_DIR if [[ ! -f "$CONFIG_FILE" ]]; then configFile=/home/admin/kindle-display.env touch $configFile sudo chmod 600 $configFile || exit 1 cat > $configFile < Access Tokens > Legacy API Keys # Omit these setting to use Kraken as a fallback. # BTCPAY_HOST="https://my.btcpayserver.com" # BTCPAY_API_TOKEN="myBtcPayLegacyApiKey" # Shall the fallbacks be used? DISPLAY_FALLBACK_BLOCK=false DISPLAY_FALLBACK_RATES=true EOF sudo mv $configFile $CONFIG_FILE fi sudo chown $USERNAME:$USERNAME $CONFIG_FILE # link config to app sudo -u $USERNAME ln -s $CONFIG_FILE $APP_SERVER_DIR/.env # generate initial data sudo -u $USERNAME $APP_SERVER_DIR/data.sh # open firewall sudo ufw allow $SERVER_PORT comment 'kindle-display HTTP' # install service cat > /home/admin/kindle-display.service <> $RASPIBLITZ_FILE else echo "KINDLE-DISPLAY already installed." fi cron_count=$(sudo -u $USERNAME crontab -l | grep "$CRON_FILE" -c) if [ "${cron_count}" = "0" ]; then echo "" echo "You might want to set up a cronjob to run the script in regular intervals." echo "As the '$USERNAME' user you can run the 'crontab -e' command." echo "" echo "Here is an example for updating every five minutes ..." echo "" echo "SHELL=/bin/bash" echo "PATH=/bin:/usr/bin:/usr/local/bin" echo "*/5 * * * * $CRON_FILE > /dev/null 2>&1" fi exit 0 fi # switch off if [ "$1" = "0" ] || [ "$1" = "off" ]; then echo "*** UNINSTALL KINDLE-DISPLAY ***" isInstalled=$(sudo ls $HOME_DIR 2>/dev/null | grep -c 'kindle-display') if [ ${isInstalled} -eq 1 ]; then echo "*** REMOVING KINDLE-DISPLAY ***" # setting value in raspi blitz config sudo sed -i "s/^kindleDisplay=.*/kindleDisplay=off/g" $RASPIBLITZ_FILE # uninstall service sudo systemctl stop kindle-display sudo systemctl disable kindle-display sudo rm /etc/systemd/system/kindle-display.service # close port on firewall sudo ufw deny $SERVER_PORT # remove config sudo rm -rf $APP_DATA_DIR # delete user and home directory sudo userdel -rf $USERNAME echo "OK KINDLE-DISPLAY removed." else echo "KINDLE-DISPLAY is not installed." fi exit 0 fi echo "FAIL - Unknown Parameter $1" exit 1