#!/usr/bin/env bash install_command="" # Check if currently in the FireWalletBrowser directory if [ -f "server.py" ]; then echo "Please run this script from outside the FireWalletBrowser directory." exit 1 fi echo "Starting installation of FireWalletBrowser..." # Check if OS is using apt package manager (Debian/Ubuntu) if command -v apt-get &> /dev/null; then install_command="sudo apt-get install -y" dependencies=(git curl wget python3 python3-pip python3-venv) echo "Detected apt package manager." # Check if OS is using pacman package manager (Arch Linux) elif command -v pacman &> /dev/null; then install_command="sudo pacman -S" dependencies=(git curl wget python3 python-pip) echo "Detected pacman package manager." else echo "Unsupported package manager. Please install dependencies manually." exit 1 fi # List of dependencies to install # Install dependencies for package in "${dependencies[@]}"; do # Check if the package is already installed if command -v $package &> /dev/null || dpkg -s $package &> /dev/null || pacman -Qi $package &> /dev/null; then echo "$package is already installed." continue fi echo "Installing $package..." $install_command $package # Check if the installation was successful if [ $? -ne 0 ]; then echo "Failed to install $package. Please check your package manager settings." exit 1 fi done if ! command -v node &> /dev/null || ! command -v npm &> /dev/null; then echo "Installing Node.js and npm..." # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash # in lieu of restarting the shell \. "$HOME/.nvm/nvm.sh" nvm install 20 if [ $? -ne 0 ]; then echo "Failed to install Node.js and npm. Please install them manually." exit 1 fi else echo "Node.js and npm are already installed." fi # Clone repo git clone https://git.woodburn.au/nathanwoodburn/firewalletbrowser.git # Setup venv cd firewalletbrowser || exit 1 python3 -m venv .venv source .venv/bin/activate # Install python dependencies python3 -m pip install -r requirements.txt # Write .env file if [ ! -f ".env" ]; then echo "Creating .env file..." echo "INTERNAL_HSD=true" > .env echo "Created .env file with INTERNAL Node enabled." fi echo "Installation complete. You can start the application by running ./start.sh"