ascension

Migrate DNS zones to the GNU Name System
Log | Files | Refs | README | LICENSE

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}"