#!/bin/bash # This script automates the installation and configuration of Haveno on a Tails OS system, # # FUNCTIONAL OVERVIEW: # - Verification of the Haveno installer's presence. # - Installation of the Haveno application with dpkg. # - Removal of automatically created desktop icons to clean up after installation. # - Deployment of Tor configuration for Haveno. # - Restart of the onion-grater service to apply new configurations. # # The script requires administrative privileges to perform system modifications. # Function to print messages in blue echo_blue() { if [ -t 1 ]; then # If File descriptor 1 (stdout) is open and refers to a terminal echo -e "\033[1;34m$1\033[0m" else # If stdout is not a terminal, send a desktop notification notify-send -i "/home/amnesia/Persistent/haveno/App/utils/icon.png" "Starting Haveno" "$1" fi } # Function to print error messages in red echo_red() { if [ -t 1 ]; then # If File descriptor 1 (stdout) is open and refers to a terminal echo -e "\033[0;31m$1\033[0m" else # If stdout is not a terminal, send a desktop notification notify-send -u critical -i "error" "Staring Haveno" "$1\nExiting..." fi } # Define file locations persistence_dir="/home/amnesia/Persistent" app_dir="${persistence_dir}/haveno/App" install_dir="${persistence_dir}/haveno/Install" haveno_installer="${install_dir}/haveno.deb" haveno_config_file="${app_dir}/utils/haveno.yml" # Check if the Haveno installer exists if [ ! -f "${haveno_installer}" ]; then echo_red "Haveno installer not found at ${haveno_installer}." exit 1 fi # Install Haveno echo_blue "Installing Haveno..." dpkg -i "${haveno_installer}" || { echo_red "Failed to install Haveno."; exit 1; } # Remove installed desktop menu icon rm -f /usr/share/applications/haveno-Haveno.desktop # Change access rights for Tor control cookie echo_blue "Changing access rights for Tor control cookie..." chmod o+r /var/run/tor/control.authcookie || { echo_red "Failed to change access rights for Tor control cookie."; exit 1; } # Copy haveno.yml configuration file echo_blue "Copying Tor onion-grater configuration to /etc/onion-grater.d/..." cp "${haveno_config_file}" /etc/onion-grater.d/haveno.yml || { echo_red "Failed to copy haveno.yml."; exit 1; } # Restart onion-grater service echo_blue "Restarting onion-grater service..." systemctl restart onion-grater.service || { echo_red "Failed to restart onion-grater service."; exit 1; } echo_blue "Haveno installation and configuration complete."