XMRig-Auto-Build
This commit is contained in:
parent
4f5f9bdffb
commit
55ccc10d01
1 changed files with 164 additions and 0 deletions
164
XMRig-Auto-Build
Executable file
164
XMRig-Auto-Build
Executable file
|
@ -0,0 +1,164 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Colors
|
||||
#
|
||||
# bold
|
||||
bred="printf \033[1;31m"
|
||||
bgreen="printf \033[1;32m"
|
||||
bblue="printf \033[1;34m"
|
||||
bwhite="printf \033[1;37m"
|
||||
# high intensity
|
||||
ired="printf \033[0;91m"
|
||||
igreen="printf \033[0;92m"
|
||||
iblue="printf \033[0;94m"
|
||||
iwhite="printf \033[0;97m"
|
||||
# no color
|
||||
off="printf \033[0m"
|
||||
|
||||
#
|
||||
# Variables
|
||||
#
|
||||
distroName="$(cat /etc/*-release | grep -w "NAME")"
|
||||
distroPrettyName="$(cat /etc/*-release | grep -w "PRETTY_NAME" | sed "s/PRETTY_NAME=//")"
|
||||
installDirectory="$(pwd)/xmrig"
|
||||
|
||||
################################################################ START OF SCRIPT ################################################################
|
||||
|
||||
#
|
||||
# Initial prompt
|
||||
#
|
||||
$bgreen; echo "###########################"
|
||||
$bgreen; echo "# XMRig auto-build script #"
|
||||
$bgreen; echo "###########################"
|
||||
$bwhite; echo -n "Install into "
|
||||
$bblue; echo -n "${installDirectory}? "
|
||||
$bwhite; echo -n "(Y/n) "
|
||||
$off
|
||||
read yn
|
||||
if [[ $yn = "" || $yn = "y" || $yn = "Y" ||$yn = "yes" ||$yn = "Yes" ]]; then
|
||||
$iblue; echo "Starting..."
|
||||
else
|
||||
$ired; echo "Exiting..."
|
||||
exit
|
||||
fi
|
||||
|
||||
#
|
||||
# Finding package manager (apt, pacman, dnf)
|
||||
#
|
||||
Search_For_PackageManager()
|
||||
{
|
||||
local packageManager="$1"
|
||||
if [[ -f $packageManager ]]; then
|
||||
$bgreen; echo -n "$distroPrettyName"
|
||||
$iwhite; echo -n " detected: using "
|
||||
$bgreen; echo "$2"
|
||||
found="yes"
|
||||
foundPackageManager="$2"
|
||||
$off
|
||||
fi
|
||||
}
|
||||
Search_For_PackageManager "/usr/bin/apt" "apt" || exit
|
||||
Search_For_PackageManager "/usr/bin/pacman" "pacman" || exit
|
||||
Search_For_PackageManager "/usr/bin/dnf" "dnf" || exit
|
||||
if [[ $found != "yes" ]]; then
|
||||
$bred; echo "Package Manager not found/supported!"
|
||||
$ired; echo "Exiting script..."
|
||||
exit
|
||||
fi
|
||||
|
||||
#
|
||||
# Installing dependencies
|
||||
#
|
||||
$bblue; echo -n "Install dependencies? (Y/n) " ;$off
|
||||
read yn
|
||||
if [[ $yn = "" || $yn = "y" || $yn = "Y" ||$yn = "yes" ||$yn = "Yes" ]]; then
|
||||
case $foundPackageManager in
|
||||
apt)
|
||||
sudo apt install git build-essential cmake automake libtool autoconf
|
||||
;;
|
||||
pacman)
|
||||
sudo pacman -S git base-devel cmake
|
||||
;;
|
||||
dnf)
|
||||
sudo dnf install -y git make cmake gcc gcc-c++ libstdc++-static automake libtool autoconf
|
||||
esac
|
||||
if [[ $? != 0 ]]; then
|
||||
$bred; echo "Installing dependencies failed, exiting..."
|
||||
exit
|
||||
fi
|
||||
else
|
||||
$iblue; echo "Skipping dependencies..."
|
||||
fi
|
||||
#
|
||||
# Build commands from xmrig.com
|
||||
#
|
||||
echo
|
||||
$bblue; echo -n "Start XMRig auto-build? (Y/n) " ;$off
|
||||
read yn
|
||||
if [[ $yn = "" || $yn = "y" || $yn = "Y" ||$yn = "yes" ||$yn = "Yes" ]]; then
|
||||
$iblue; echo "Starting..." ;$off
|
||||
else
|
||||
$ired; echo "Exiting..." ;$off
|
||||
exit
|
||||
fi
|
||||
Build_Commands()
|
||||
{
|
||||
git clone https://github.com/xmrig/xmrig.git
|
||||
mkdir xmrig/build
|
||||
cd xmrig/scripts
|
||||
./build_deps.sh
|
||||
# 2022-03-10: openssl fails to compile on fedora, libressl is used instead
|
||||
if [[ $foundPackageManager = "dnf" ]]; then
|
||||
./build_libressl.sh
|
||||
fi
|
||||
cd ../build
|
||||
cmake .. -DXMRIG_DEPS=scripts/deps
|
||||
make -j$(nproc)
|
||||
}
|
||||
|
||||
Build_Commands
|
||||
if [[ $? != 0 ]]; then
|
||||
$bred; echo "XMRig auto-build failed, cleaning up files..."
|
||||
sudo rm -r "$installDirectory"
|
||||
$ired; echo "Exiting..."
|
||||
exit
|
||||
else
|
||||
echo
|
||||
$bgreen; echo "XMRig auto-build done!"
|
||||
$bwhite; echo -n "Delete source code? (leaves xmrig and config.json) (Y/n) " ;$off
|
||||
|
||||
# moves xmrig/config.json into /xmrig/tmp_autobuild/, deletes everything in /xmrig/, then moves them back and deletes /xmrig/tmp_autobuild/
|
||||
# rm needs sudo because .git files are write-protected
|
||||
|
||||
read yn
|
||||
if [[ $yn = "" || $yn = "y" || $yn = "Y" ||$yn = "yes" ||$yn = "Yes" ]]; then
|
||||
$iblue; echo "Cleaning up..." ;$off
|
||||
cd $installDirectory
|
||||
mkdir "$installDirectory/tmp_autobuild"
|
||||
mv "$installDirectory/build/xmrig" "$installDirectory/tmp_autobuild/"
|
||||
mv "$installDirectory/src/config.json" "$installDirectory/tmp_autobuild/"
|
||||
ls | grep -v "tmp_autobuild" | xargs sudo rm -r > /dev/null
|
||||
mv "$installDirectory/tmp_autobuild/xmrig" $installDirectory
|
||||
mv "$installDirectory/tmp_autobuild/config.json" $installDirectory
|
||||
rm -r "$installDirectory/tmp_autobuild" > /dev/null
|
||||
else
|
||||
$iblue; echo "Skipping cleanup..."
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# End
|
||||
#
|
||||
echo
|
||||
$bgreen; echo "#####################################"
|
||||
$bgreen; echo "# XMRig auto-build script complete! #"
|
||||
$bgreen; echo "#####################################"
|
||||
# shows different locations dependent on if source files are deleted or not
|
||||
if [[ $yn = "" || $yn = "y" || $yn = "Y" ||$yn = "yes" ||$yn = "Yes" ]]; then
|
||||
$bwhite; echo -n "XMRig Location: "
|
||||
$bblue; echo $installDirectory
|
||||
else
|
||||
$bwhite; echo "Location: "
|
||||
$iwhite; echo -n "xmrig: " ;$bblue; echo "$installDirectory/build/xmrig"
|
||||
$iwhite; echo -n "config.json: " ;$bblue; echo "$installDirectory/src/config.json"
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue