Files
nolambocoin_miner_neu/build_nolambocoin_miner.sh
w12 713dd76139
Some checks are pending
Build CPU miner / build (push) Waiting to run
miner überarbeitet
2025-01-05 11:04:16 +01:00

151 lines
3.7 KiB
Bash

#!/bin/bash
# build.sh - Ein Skript zur Automatisierung des Build- und Installationsprozesses für Nolambocoin Miner
# Funktionen zur Anzeige von Nachrichten
function echo_info {
echo -e "\e[34m[INFO]\e[0m $1"
}
function echo_success {
echo -e "\e[32m[SUCCESS]\e[0m $1"
}
function echo_error {
echo -e "\e[31m[ERROR]\e[0m $1"
}
# Überprüfen der Abhängigkeiten
function check_dependencies {
echo_info "Überprüfe erforderliche Abhängigkeiten..."
local dependencies=("autoconf" "automake" "libcurl4-openssl-dev" "libjansson-dev" "build-essential" "pkg-config")
for dep in "${dependencies[@]}"; do
if ! dpkg -s "$dep" &> /dev/null; then
echo_error "Abhängigkeit fehlt: $dep"
echo_info "Bitte installieren Sie fehlende Abhängigkeiten mit folgendem Befehl:"
echo_info "sudo apt-get install ${dependencies[@]}"
exit 1
fi
done
echo_success "Alle erforderlichen Abhängigkeiten sind installiert."
}
# Initialisieren der Autotools
function initialize_autotools {
echo_info "Initialisiere Autotools..."
if ! autoreconf -i; then
echo_error "Fehler beim Ausführen von autoreconf."
exit 1
fi
echo_success "Autotools erfolgreich initialisiert."
}
# Konfigurieren des Projekts
function configure_project {
echo_info "Konfiguriere das Projekt..."
if ! ./configure; then
echo_error "Fehler beim Ausführen von ./configure."
exit 1
fi
echo_success "Projekt erfolgreich konfiguriert."
}
# Kompilieren des Projekts
function compile_project {
echo_info "Kompiliere das Projekt..."
if ! make -j$(nproc); then
echo_error "Fehler beim Ausführen von make."
exit 1
fi
echo_success "Projekt erfolgreich kompiliert."
}
# Installieren des Projekts
function install_project {
echo_info "Installiere das Projekt..."
if [ "$EUID" -ne 0 ]; then
echo_error "Installation erfordert Root-Rechte. Bitte führen Sie das Skript mit sudo aus."
exit 1
fi
if ! make install; then
echo_error "Fehler beim Ausführen von make install."
exit 1
fi
echo_success "Projekt erfolgreich installiert."
}
# Bereinigung des Build-Verzeichnisses
function clean_project {
echo_info "Bereinige das Projekt..."
if ! make clean; then
echo_error "Fehler beim Ausführen von make clean."
exit 1
fi
echo_success "Projekt erfolgreich bereinigt."
}
# Anzeige der Nutzung des Skripts
function show_help {
echo "Usage: ./build.sh [options]"
echo ""
echo "Options:"
echo " --build Konfiguriert und kompiliert das Projekt."
echo " --install Installiert das Projekt nach dem Kompilieren."
echo " --clean Bereinigt die Build-Dateien."
echo " --help Zeigt diese Hilfe an."
echo ""
echo "Beispiele:"
echo " ./build.sh --build"
echo " sudo ./build.sh --install"
echo " ./build.sh --clean"
exit 0
}
# Hauptfunktion zur Verarbeitung der Skript-Argumente
function main {
if [ $# -eq 0 ]; then
show_help
fi
for arg in "$@"; do
case $arg in
--build)
check_dependencies
initialize_autotools
configure_project
compile_project
;;
--install)
install_project
;;
--clean)
clean_project
;;
--help)
show_help
;;
*)
echo_error "Unbekannte Option: $arg"
show_help
;;
esac
done
}
# Aufruf der Hauptfunktion mit allen übergebenen Argumenten
main "$@"