#!/bin/bash SYSTEMD_SERVICE_FILE="/etc/systemd/system/alyverkko-cli.service" # Function to install binary and jar install_to_opt() { sudo rm -rf /opt/alyverkko-cli/ sudo mkdir -p /opt/alyverkko-cli/ sudo chmod 755 /opt/alyverkko-cli/ sudo cp target/alyverkko-cli.jar "/opt/alyverkko-cli/alyverkko-cli.jar" sudo cp "alyverkko-cli" "/opt/alyverkko-cli/alyverkko-cli" sudo chmod +x "/opt/alyverkko-cli/alyverkko-cli" sudo cp logo.png "/opt/alyverkko-cli/logo.png" sudo ln -sf "/opt/alyverkko-cli/alyverkko-cli" /usr/bin/alyverkko-cli } # Function to install the desktop launcher install_desktop_entry() { sudo cp launchers/alyverkko-cli*.desktop /usr/share/applications/ sudo chmod 644 /usr/share/applications/alyverkko-cli*.desktop } # Function to install systemd service install_systemd_service() { cat < /dev/null [Unit] Description=Älyverkko CLI daemon in mail mode After=network.target [Service] User=$USER ExecStart=/opt/alyverkko-cli/alyverkko-cli mail WorkingDirectory=/opt/alyverkko-cli Nice=10 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable alyverkko-cli sudo systemctl start alyverkko-cli sleep 1 echo "Systemd service installed, enabled and started. Service status is:" systemctl --no-pager -l status alyverkko-cli } # Function to pre-deploy example configuration YAML file install_config_file() { local alyverkko_config_dir="${HOME}/.config/alyverkko-cli" if [ ! -d "$alyverkko_config_dir" ]; then mkdir -p "$alyverkko_config_dir" cp alyverkko-cli.yaml "$alyverkko_config_dir/" else echo "Configuration directory already exists: $alyverkko_config_dir" fi } # Main installation function main() { # Build the application mvn --settings maven.xml clean package install_to_opt install_desktop_entry install_config_file # Check if systemd service already exists if [ -f "$SYSTEMD_SERVICE_FILE" ]; then echo "Systemd service is already installed." # Display the status without hanging echo "Service status is:" systemctl --no-pager -l status alyverkko-cli else # Install systemd service if requested echo "Do you want to install Älyverkko CLI as a systemd service? (y/N)" read install_service if [[ $install_service == [Yy] ]]; then install_systemd_service fi fi echo "Installation complete." } # Call the main installation function main