haveno/scripts/install_tails/assets/exec.sh
woodser 6d1f1e43d6
update installation process for tails
Co-authored-by: anonymous
2024-09-09 07:34:39 -04:00

62 lines
2.1 KiB
Bash

#!/bin/bash
# This script serves as the execution entry point for the Haveno application from a desktop menu icon,
# specifically tailored for use in the Tails OS. It is intended to be linked as the 'Exec' command
# in a .desktop file, enabling users to start Haveno directly from the desktop interface.
#
# FUNCTIONAL OVERVIEW:
# - Automatic installation and configuration of Haveno if not already set up.
# - Linking Haveno data directories to persistent storage to preserve user data across sessions.
#
# NOTE:
# This script assumes that Haveno's related utility scripts and files are correctly placed and accessible
# in the specified directories.
# 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"
data_dir="${persistence_dir}/haveno/Data"
# Create data dir
mkdir -p "${data_dir}"
# Check if Haveno is already installed and configured
if [ ! -f "/opt/haveno/bin/Haveno" ] || [ ! -f "/etc/onion-grater.d/haveno.yml" ]; then
echo_blue "Installing Haveno and configuring system..."
pkexec "${persistence_dir}/haveno/App/utils/install.sh"
# Redirect user data to Tails Persistent Storage
ln -s "${data_dir}" /home/amnesia/.local/share/Haveno
else
echo_blue "Haveno is already installed and configured."
fi
echo_blue "Starting Haveno..."
/opt/haveno/bin/Haveno --torControlPort 951 --torControlCookieFile=/var/run/tor/control.authcookie --torControlUseSafeCookieAuth --userDataDir=${data_dir} --useTorForXmr=on --socks5ProxyXmrAddress=127.0.0.1:9050