48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e # Exit immediately if a command exits with a non-zero status
|
|
|
|
# Define color codes
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Function to print colored output
|
|
print_color() {
|
|
printf "${!1}%s${NC}\n" "$2"
|
|
}
|
|
|
|
|
|
# Kill any running instances of nlogout
|
|
print_color "YELLOW" "Terminating any running nlogout instances..."
|
|
pkill -f "nlogout" || true # Don't exit if no process found
|
|
|
|
# Install nim language
|
|
print_color "YELLOW" "Installing nim..."
|
|
if sudo pacman -S nim --noconfirm --needed; then
|
|
print_color "GREEN" "nim installed successfully."
|
|
else
|
|
print_color "RED" "Failed to install nim. Please install it manually and rerun this script."
|
|
exit 1
|
|
fi
|
|
|
|
# Install required Nim modules
|
|
print_color "YELLOW" "Installing required Nim modules..."
|
|
if yes | nimble install parsetoml && yes | nimble install nigui; then
|
|
print_color "GREEN" "Modules installed successfully."
|
|
else
|
|
print_color "RED" "Failed to install required modules. Please check your internet connection and try again."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# Compile nlogout
|
|
print_color "YELLOW" "Compiling nlogout..."
|
|
if nim compile --define:release --opt:size --app:gui --outdir="./bin" src/nlogout.nim; then
|
|
sudo cp -v ./bin/nlogout /usr/bin/nlogout
|
|
print_color "GREEN" "nlogout compiled successfully."
|
|
else
|
|
print_color "RED" "Failed to compile nlogout. Please check the error messages above."
|
|
exit 1
|
|
fi |