gnunet-installer-0.11-debian.sh (4970B)
1 #!/bin/bash 2 # Written by Torsten Grothoff 3 # Licensed under GPLv3+ 4 # Updated by rexxnor 5 # SPDX-License-Identifier: GPL3.0-or-later 6 7 export bold="\e[1m" 8 export dim="\e[2m" 9 export underlined="\e[4m" 10 export blink="\e[5m" 11 export inverted="\e[7m" 12 export hidden="\e[8m" 13 export resetall="\e[0m" #All 14 export resetbold="\e[21m" #Bold 15 export resetdim="\e[22m" #Dim 16 export resetunderlined="\e[24m" #Underlined 17 export resetblink="\e[25m" #Blink 18 export resetinverted="\e[27m" #Inverted 19 export resethidden="\e[28m" #Hidden 20 export defaultcolor="\e[39m" 21 export black="\e[30m" 22 export red="\e[31m" 23 export green="\e[32m" 24 export yellow="\e[33m" 25 export blue="\e[34m" 26 export magenta="\e[35m" 27 export cyan="\e[36m" 28 export lightgray="\e[37m" 29 export darkgray="\e[90m" 30 export lightred="\e[91m" 31 export lightgreen="\e[92m" 32 export lightyellow="\e[93m" 33 export lightblue="\e[94m" 34 export lightmagenta="\e[95m" 35 export lightcyan="\e[96m" 36 export white="\e[97m" 37 export default 38 export blackbg="\e[30m" 39 export redbg="\e[31m" 40 export greenbg="\e[42m" 41 export yellowbg="\e[43m" 42 export bluebg="\e[44m" 43 export magentabg="\e[45m" 44 export cyanbg="\e[46m" 45 export lightgraybg="\e[47m" 46 export darkgraybg="\e[100m" 47 export lightredbg="\e[101m" 48 export lightgreenbg="\e[102m" 49 export lightyellowbg="\e[103m" 50 export lightbluebg="\e[104m" 51 export lightmagentabg="\e[105m" 52 export lightcyanbg="\e[106m" 53 export whitebg="\e[107m" 54 function errorhandler { 55 errorcode=$? 56 if [[ "$errorcode" != "0" ]]; then 57 echo "An Error has Occured [Error Code: $errorcode]." 58 if [[ "$errorcode" == "127" ]]; then 59 echo "Potential Fatal Error; Exiting" 60 exit 127 61 fi 62 fi 63 } 64 if [[ "$UID" -ne 0 ]]; then 65 if [[ "$1" == "--ignore-root-check" ]]; then 66 echo "Warning: You are not running this file as root; As such, this installer will probabally not work. Expect Errors" 67 else 68 echo "You must run this program as root that way it can work\nIf you are sure you want to continue without root[will most likely not work]; run this file with --ignore-root-check" 69 exit 1 70 fi 71 fi 72 apt install --yes --fix-missing git libtool autoconf autopoint build-essential libgcrypt-dev libidn11-dev zlib1g-dev libunistring-dev libglpk-dev miniupnpc libextractor-dev libjansson-dev libcurl4-gnutls-dev libsqlite3-dev openssl libnss3-tools 73 apt install --yes git libtool autoconf autopoint \ 74 build-essential libgcrypt-dev libidn11-dev zlib1g-dev \ 75 libunistring-dev libglpk-dev miniupnpc libextractor-dev \ 76 libjansson-dev libcurl4-gnutls-dev libsqlite3-dev openssl \ 77 libnss3-tools libmicrohttpd-dev libgnutls28-dev libp11-kit-dev libp11-kit0 dialog 78 errorhandler 79 mkdir ~/gnunet_installation 80 cd ~/gnunet_installation 81 git clone --depth 1 https://gnunet.org/git/gnunet.git 82 git clone --depth 1 https://gnunet.org/git/libmicrohttpd.git 83 cd ~/gnunet_installation/libmicrohttpd 84 autoreconf -fi 85 apt install -y libgnutls28-dev 86 ./configure --disable-doc --prefix=/opt/libmicrohttpd 87 make -j$(nproc || echo -n 1) 88 make install 89 # 90 if [[ "$1" == "Production" || "$1" == "Development" ]]; then 91 echo "$1" > ./result.txt 92 fi 93 94 if [[ ! -f ./result.txt ]]; then 95 dialog --menu Production\ Or\ Developement? -1 -1 2 Production 1 Development 2 2> ./result.txt 96 fi 97 if [[ `cat ./result.txt` == Production ]]; then 98 cd ~/gnunet_installation/gnunet 99 ./bootstrap 100 export GNUNET_PREFIX=/usr 101 ./configure --prefix=$GNUNET_PREFIX --disable-documentation --with-microhttpd=/opt/libmicrohttpd 102 addgroup gnunetdns 103 adduser --system --group --disabled-login --home /var/lib/gnunet gnunet 104 make -j$(nproc || echo -n 1) 105 make install 106 else 107 if [[ `cat ./result.txt` == Developement ]]; then 108 cd ~/gnunet_installation/gnunet 109 ./bootstrap 110 export GNUNET_PREFIX=/usr 111 export CFLAGS="-g -Wall -O0" 112 ./configure --prefix=$GNUNET_PREFIX --disable-documentation --enable-logging=verbose --with-microhttpd=/opt/libmicrohttpd 113 make -j$(nproc || echo -n 1) 114 make install 115 fi 116 fi 117 rm ~/gnunet_installation/libmicrohttpd/result.txt 118 touch ~/.config/gnunet.conf 119 echo -e "Associating ${green}gnunet://${resetall} with gnunet" 120 for n in `cat /etc/passwd | awk '{print $6}' FS=:`; do 121 dir=`echo $n/.local/share/applications` 122 echo "[Added Associations] 123 x-scheme-handler/gnunet=gnunet.desktop" >> $dir/mimeapps.list 124 echo "[Desktop Entry] 125 Version=1.0 126 Type=Application 127 Exec=sh -c \"gnunet-uri $@\" 128 Icon=/usr/share/gnunet/gnunet-logo-color.png 129 StartupNotify=false 130 Terminal=false 131 Categories=Internet 132 MimeType=x-scheme-handler/gnunet 133 Name=GNUNet 134 Comment=GNUNet Protocol Executer 135 GenericName=GNUNet Protocol Executer[Created By Gnunet Installer; by TStudios]" > $dir/gnunet.desktop 136 chmod 644 gnunet.desktop 137 done 138 echo -e "To start GNUNet Services: ${green}gnunet-arm -s${resetall}\nTo view GNUNet Services: ${green}gnunet-arm -I${resetall}\nTo Stop GNUNet Services: ${green}gnunet-arm -e${resetall}\n\n${red}NOTE: This GNUNet Installation Might only be available as ${green}ROOT${resetall}\n${lightgreen}For more info: https://gnunet.org/en/tutorial-debian9.html${resetall}"